基本RESTful控制器与Laravel中的所有其他路由冲突

时间:2015-01-30 07:00:09

标签: php rest laravel controller routes

我有一个RESTful控制器用于登录。但是这个RESTful控制器与所有其他路由冲突。我为所有其他路线获得了例外Controller method not found.

在这里'路线:

Route::controller('', 'LoginController');
Route::resource('receipe', 'ReceipeController');
Route::resource('user', 'UserController');

如果我将LoginController路线转移到底部或者为此路线提供基本网址,则可以正常工作。但是,如果LoginController位于顶部并且没有基本网址,那么为什么所有其他路线都会停止工作?

1 个答案:

答案 0 :(得分:0)

问题是这个控制器路由基本上捕获每个请求。另请注意,您注册路线的顺序是Laravel通过它们查找匹配路线的顺序。首先检查Route::controller('')并匹配所有内容,以便从不使用其他内容。您有几个选项可以解决此问题:

  1. 只需更改路线的顺序即可。 (Route::controller('')位于最底层)
  2. 指定LoginController的显式路由。例如:

    Route::get('', 'LoginController@index');
    Route::get('register', 'LoginController@register');
    等等..

  3. 使用静态网址段而不是root('')。显然这会稍微改变你的网址。

    Route::controller('login', 'LoginController');