RESTful控制器的Laravel更改路径

RESTful控制器的Laravel更改路径,rest,routes,laravel,Rest,Routes,Laravel,我决定将我的用户逻辑拆分为一个控制器,以清理我的路由文件,沿着RESTful路由,我得到了如下结果: UsersController { getLogin() { } postLogin() { } } 只是现在我坚持使用/users/login和/users/register等 我需要将它们更改为/login和/register,我已经研究并没有找到明确的答案,我尝试了命名路由方法: Route::get('users/login', array('as' =

我决定将我的用户逻辑拆分为一个控制器,以清理我的路由文件,沿着RESTful路由,我得到了如下结果:

UsersController {
    getLogin() {
    }
    postLogin() {
    }
}
只是现在我坚持使用/users/login和/users/register等

我需要将它们更改为/login和/register,我已经研究并没有找到明确的答案,我尝试了命名路由方法:

Route::get('users/login', array('as' => 'login', 'uses' => 'UsersController@getLogin'));
但上面说没有找到,经过一点测试和评估,我找到了一条工作路线:

Route::get('login', 'UsersController@getLogin');
直到现在,我才明确定义了每个方法。。当我两次定义这个动词的时候,这是否违背了RESTful的目的呢

如果Laravel能够找出所请求的方法,那就太棒了,然后我就可以做下面的事情,并用它来完成:

Route::any('login', 'UsersController@Login');

据我所知,这是不可能做到的。。。那么,在这种情况下尝试使用RESTful并对所有方法使用命名路由是否毫无意义

restful控制器仅在路由过程中没有异常的情况下才有用

这些restful控制器的限制是,构建始终是相同的: {ControllerAlias}/{Method}/{Parameter}

您可以使用
Route::controller('users','userscocontroller')来定义它们

您可以做的是,对异常使用命名路由,但对其他一切使用restful控制器

另一个选项是创建一个“index”控制器,其中包含getLogin/postLogin和getRegister/postlister方法

路由类似于:
route::controller(“/”,“HomeController”)

就我个人而言,我键入了所有可能的路径,这样我就可以确切地知道访问者将看到什么,这不仅是一件安全的好事情(白名单始终是安全的良好开端),它还帮助我更好地思考页面应该做什么,以及它应该或不应该具有哪些功能。
最终提供更好的结构化代码。但这更多的是我个人对路由的看法。

当您想使用函数名作为getLogin和postLogin时,您有两个选项。 第一个是在您的路线中呼叫控制器

Route::controller('auth', 'AuthController');//or whatever is the name of your controller
如果您想向REST full resource添加其他路由,则需要在资源调用之前指定它们

Route::get('login','AuthController@getLogin');
Route::post('login','AuthController@postLogin');
Route::resource('login', 'AuthController');