laravel - laravel 中的嵌套资源不起作用
问题描述
我想要这样的嵌套资源:
Route::group(['prefix' => 'manage', 'middleware' => ['role:boss']], function ()
{
Route::resource('/articles', 'ArticleController');
Route::group(['prefix' => '/articles', 'as' => 'articles.'], function () {
Route::resource('/types', 'ArticleTypeController');
});
});
但是“文章/类型”的嵌套路由不起作用,我在“文章”路由之外检查了我的 ArticleTypeController 并工作。
我真的很困惑,大家可以帮帮我吗?
这是我的控制器:
class ArticleTypeController extends Controller
{
public function index()
{
$types = ArticleType::all();
return view('manage.articles.types.index')->withtypes($types);
}
}
解决方案
Route::group(['prefix' => 'manage', 'middleware' => ['role:boss']], function ()
{
Route::get('articles/types', 'ArticleTypeController@articleTypeMethod');
Route::resource('articles', 'ArticleController');
Route::resource('articles.types', 'ArticleTypeController');
});
对于嵌套资源使用articles.types
。复数命名是好的。现在,manage/articles
并且manage/articles/1/types
将工作。
如果要放置自定义路由,如果控制器已用作资源,请将其放在资源路由上方。查看映射到's的articles/types [GET]
路线。现在这种方式应该有效ArticleTypeController
articleTypeMethod
http://localhost.com/manage/articles/types
这是5.1 文档,它已从 5.5 文档中删除。但看看泰勒在这里说了什么
不建议在 REST 上使用 index 函数articles/types
,使用嵌套资源index
方法,如articles/{id}/types
. 因为articles/types
您需要创建一个新方法。
但如果你仍然想那样做。就这样吧
Route::group(['prefix' => 'manage', 'middleware' => ['role:boss']], function ()
{
Route::get('articles/types', 'ArticleTypeController@index');
Route::resource('articles', 'ArticleController');
Route::resource('articles.types', 'ArticleTypeController', ['except' => ['index']]);
});
推荐阅读
- tesseract - 正方体输出中的奇怪符号
- python - FastAPI上传多张图片的请求格式
- react-native - react-native-paper 的样式宽度菜单
- java - spring cloud stream ibm qm binder 实现
- python - 如何在 Python 中计算冒泡排序中的交换次数
- python - Julia:龙格库塔法的计算时间
- python - 在 python 中显示 SyntaxError
- ios - 当两个用户之间正在进行来电并收到另一个来电时,应自动拒绝另一个来电
- ansible - 为什么 Ansible 变量覆盖策略的行为似乎不像记录的那样?
- java -
实现 'com.chaos.view:pinview:1.4.4' 当我尝试在我的布局上调用它时它什么也不显示
<com.chaos.view.PinView android:layout_width="wrap_content"