Laravel路线转到控制器,但不显示数据

时间:2019-04-07 17:58:33

标签: php laravel laravel-5

我创建了以下路线

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,控制器就可以正常工作。

有人可以解释这个问题是什么

2 个答案:

答案 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([     '节目' ]);