Laravel 4.x,同时使用控制器和放大器资源路由

时间:2014-07-14 18:15:49

标签: laravel resources laravel-routing

我正在尝试使用它:

Route::resource('users', 'UserController');
Route::controller('users', 'UserController');

当我使用其中一个时 - 工作, 否则 - 只有资源工作。

可以选择使用它们吗?

3 个答案:

答案 0 :(得分:0)

哪个是最重要的,所以如果你把Route :: controller放在顶部那么那就是可以工作的那个。我会将此作为评论发布,但我没有代表这样做。另外你为什么要同时使用它们?

答案 1 :(得分:0)

尝试在Route::controller上方移动Route::resource声明:

Route::controller('users', 'UserController');
Route::resource('users', 'UserController');

事情是,Laravel尝试通过从上到下匹配请求与您定义的路由,并在找到路径时停止。

您的示例中的

localhost/users/example实际上在show类中点击了UserController方法,如documentation中所述(请参阅资源控制器处理的操作) 。

因此,在这种情况下会忽略Route::controller('users', 'UserController');

答案 2 :(得分:0)

我认为它只能使用一个,因为一旦您使用Route::resource(),所有以users开头的路线都将被抓取,并且由于Route::resource()不起作用在uri(public function getUsers())的最后一个部分前面加上动作,它就失败了。

提供示例后,您需要使用的是Route::controller()。如果在某些情况下不会发生这种情况,请使用Route::get()Route::post()Route::any()

添加您需要的任何路线

Route::resource()Route::controller()我认为并非旨在协同工作,并且不需要实际使用它们。