我正在尝试使用它:
Route::resource('users', 'UserController');
Route::controller('users', 'UserController');
当我使用其中一个时 - 工作, 否则 - 只有资源工作。
可以选择使用它们吗?
答案 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()
我认为并非旨在协同工作,并且不需要实际使用它们。