在 Laravel 上获取父资源路由模型?

Get Parent Resource Route Model on Laravel?

我正在写一个 REST API,我正在使用多态关系将图像分配给 usersproducts(将来会有更多,我打算代码寿命长,所以我想构建适用于任何其他 imageable 模型的东西)。

所以我有这样的路线:

Route::resource('images', 'ImagesController');
Route::resource('products.images', 'ImagesController');
Route::resource('users.images', 'ImagesController');

所以发布到 /products/{id}/images/users/{id}/images 调用相同的操作:ImagesController::store( $resource_id )。所以我拥有创建数据库记录的所有内容,除了父模型名称!

我的第一个猜测是使用 Route::current()->getName() 并使用第一个“/”之前的字符串部分来获取模型名称。但是有更好的开箱即用的方法吗?还是我走对了路?

只需使用Laravel request segment函数

$parent_resource = Request::segment(1);
// gives 'products' or 'users'

这是我最终完成的方式。感谢 The Shift ExchangeRequest::segment(1) 部分!

$parent_resource_class = studly_case( str_singular ( Request::segment(1) ) );