[英]Laravel request helper in URL to get ID / Resource ID
我正在开发一个 Laravel 5.6 应用程序,并且有以下两个 API 路由:
Route::resource('/partners', 'API\Partners\PartnersController');
Route::resource('/partners/{id}/sales-team', 'API\Partners\SalesTeamController');
在两个控制器中,我都在构造方法中引用了自定义中间件“VerifyUserOwnsTeam”。
要从我之前拥有的中间件中的请求中获取资源 ID:
$request->route('partner')
这工作了一个 URL,例如:
/api/partners/1
但是,我现在正在调用一个新的端点,例如:
/api/partners/1/sales-team
在我的中间件中,合作伙伴的请求路由参数为空。 如果我将参考更改为:
$request->route('id')
然后它适用于后一个端点,但在第一个端点上失败以获取空值。
知道如何保持一致吗?
我使用 laravel 8 并在我的情况下得到了解决。 我已将路由器中的参数id放入我的控制器中。 然后传递带有紧凑函数的id以在我的视图中使用。
这是代码示例
我的路由器:
Route::resource('stock/{id}', StockController::class);
我的控制器:
public function index($id, Request $request)
{
return View::make("pages.stock.index", compact('id'));
}
我的看法:
{{$id}}
我知道这对你的情况是否有效,但我希望你能得到一些线索。
你需要改变你的第一条路线来接受一个id:
Route::resource('/partners/{id?}', 'API\\Partners\\PartnersController');
对于所有搜索者:对于编辑/更新/删除操作中的资源,您可以使用请求类访问模型的 ID
$this->get('id')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.