繁体   English   中英

URL 中的 Laravel 请求助手以获取 ID/资源 ID

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM