在 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 请求段函数

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

这就是我最终做到的原因。感谢班次交换Request::segment(1)部分!

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