我有一个用于登录目的的RESTful
控制器。但是这个 RESTful 控制器与所有其他路由冲突。我收到所有其他路线的异常Controller method not found.
。
以下是路线:
Route::controller('', 'LoginController');
Route::resource('receipe', 'ReceipeController');
Route::resource('user', 'UserController');
如果我LoginController
路由移动到底部或提供此路由的基本 URL,它工作正常。但是,如果LoginController
位于顶部并且没有基本网址,为什么所有其他路由都停止工作?
问题是这个控制器路由基本上捕获了每个请求。另请注意,您注册路线的顺序是Laravel通过它们找到匹配路线的顺序。 首先检查Route::controller('')
并匹配所有内容,因此永远不会使用其他内容。您有几种方法可以解决此问题:
- 只需更改路线的顺序即可。(
Route::controller('')
在最底部) -
指定
LoginController
的显式路由。例如:Route::get('', 'LoginController@index');
Route::get('register', 'LoginController@register');
等等.. -
使用静态 URL 段而不是根 (
''
)。显然,这会稍微改变您的 URL。Route::controller('login', 'LoginController');