在 Laravel 上获取父资源路由模型?
Get Parent Resource Route Model on Laravel?
我正在写一个 REST API,我正在使用多态关系将图像分配给 users
和 products
(将来会有更多,我打算代码寿命长,所以我想构建适用于任何其他 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 Exchange 的 Request::segment(1)
部分!
$parent_resource_class = studly_case( str_singular ( Request::segment(1) ) );
我正在写一个 REST API,我正在使用多态关系将图像分配给 users
和 products
(将来会有更多,我打算代码寿命长,所以我想构建适用于任何其他 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 Exchange 的 Request::segment(1)
部分!
$parent_resource_class = studly_case( str_singular ( Request::segment(1) ) );