Php Laravel路线上的PSR7:访问最新参数
嗨,有下一条路线吗Php Laravel路线上的PSR7:访问最新参数,php,laravel,lumen,psr-7,Php,Laravel,Lumen,Psr 7,嗨,有下一条路线吗 Route::get('/{param1}', 'Http\Controllers\SomeController@getCollection'); Route::get('/{param_for_middleware}/{param1}', 'Http\Controllers\SomeController@getCollection'); 在我的控制器上,我有 // PSR7 code use Illuminate\Routing\Contr
Route::get('/{param1}',
'Http\Controllers\SomeController@getCollection');
Route::get('/{param_for_middleware}/{param1}',
'Http\Controllers\SomeController@getCollection');
在我的控制器上,我有
// PSR7 code
use Illuminate\Routing\Controller;
use Psr\Http\Message\ServerRequestInterface;
class SomeController extends Controller
public function getCollection(ServerRequestInterface $request)
{
// here, I need access to param1
dd($request);
}
}
使用原始的Laravel路由器,我们可以通过
$this->route()->parameters()['param1]
获得价值。但是,当我们在Laravel上使用PSR7时?您可以,仍然使用好的旧方法吗
public function getCollection(ServerRequestInterface $request, $param1)
{
// here is your param1!
dd($param1);
}
编辑
如果需要多个参数并需要确保其位置,可以执行以下操作:
public function getCollection(
ServerRequestInterface $request,
\Illuminate\Http\Request $illuminateRequest
)
{
// here is your param1 & param_for_middleware!
dd($illuminateRequest->route('param1') . ' & ' .
$illuminateRequest->route('param_for_middleware'));
}
为什么不使用$request->get('param1')???像往常一样..因为
get()
没有在Zend\\Diactoros\\ServerRequest
上定义,所以不要在Route::get('/{param\u for_middleware}/{param1}',Http\Controllers上工作\SomeController@getCollection');因为dump{param\u for_middleware}
,而不是{param1}
Yep提供了另一种@pablorsk