Laravel 路线上的 PSR7:访问最新参数
PSR7 on Laravel Routes: access to latest params
你好有下一条路线
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'));
}
你好有下一条路线
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?
可以,还在用老方法吗?
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'));
}