我创建了以下路线
Route::resource('posts','PostController');
现在我正在尝试创建自定义路线
Route::get('posts/trashed','PostController@trashed')->name('posts.trashed');
单击链接posts/trashed
时,它会转到PostController@trashed
,但是控制器显示空白页,没有任何错误。
因此将自定义路线更改为
`Route::get('post/trashed','PostController@trashed')->name('posts.trashed');
只需将posts/trashed
更改为post/trashed
,控制器就可以正常工作。
有人可以解释这个问题是什么
答案 0 :(得分:0)
弄清楚了。解决方案隐藏在Laravel文档内部。 https://laravel.com/docs/5.0/controllers#restful-resource-controllers
如果有必要在默认资源路由之外向资源控制器添加其他路由,则应在调用Route::resource:
重新排序将解决此问题。
Route::get('posts/trashed','PostController@trashed')->name('posts.trashed');
Route::resource('posts','PostController');
答案 1 :(得分:0)
资源路由内部有一些路由。
所以这条路线:
Route :: resource('posts','PostController');
包含此路线:
Route :: get('posts / {post_id}',PostController @ show)
因此它与您的路线发生冲突
Route :: get('posts / trashed','PostController @ trashed')-> name('posts.trashed');
解决方案1:
使路线高于资源
我的意思是:
Route :: get('posts / trashed','PostController @ trashed')-> name('posts.trashed'); <-首先 路线:: resource('posts','PostController');
解决方案2:
您提到过,请使用其他网址(例如发布/投放网址)
解决方案3:
为资源添加例外。
Route :: resource('posts','PostController')-> except([ '节目' ]);