5

我看到 Laravel 5.2 改变了routes.php使用。

事实上,旧的:

Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
]);

现在不工作。

相反,我发现最好使用:

Route::Auth();

但是这种方法不提供密码和注册路由,就像它用来...

实际上,我使用了我在 Stack Overflow 上看到的解决方案,使用 get 和 post 方法:

// Authentication Routes...
Route::get('login', 'Auth\AuthController@showLoginForm');
[...]

// Registration Routes...
Route::get('register', 'Auth\AuthController@showRegistrationForm');
[...]

// Password Reset Routes...
Route::get('password/reset/{token?}','Auth\PasswordController@showResetForm');
[...]

这很糟糕,那么对于这个新的 Laravel 版本,5.2 route.php 文件有更好的用法吗?

谢谢你的帮助 !

4

5 回答 5

10

从 Laravel 5.2 开始,身份验证系统更容易启动和运行。你可以简单地运行这个命令:

php artisan make:auth

这将负责设置必要的身份验证资源:路由定义、视图等。在Laravel 文档中有更多关于该主题的信息。你也可以查看这篇文章来了解 Laravel 5.2 的其他新特性。

于 2015-12-29T17:34:31.407 回答
3

vendor/laravel/framework/src/Illuminate/Routing/Router.php
去这个文件的身份验证方法,有定义的所有路由

于 2016-06-27T08:23:48.900 回答
2

愿此代码对您有所帮助..

Route::get('auth/login', 'Auth\AuthController@getLogin');
Route::post('auth/login', 'Auth\AuthController@postLogin');
Route::get('auth/logout', 'Auth\AuthController@getLogout');
Route::get('auth/confirm/{token}', 'Auth\AuthController@getConfirm');

对于密码

  Route::get('password/email', 'Auth\PasswordController@getEmail');
  Route::post('password/email', 'Auth\PasswordController@postEmail');


  Route::get('password/reset{token}','Auth\PasswordController@getReset');
  Route::post('password/reset', 'Auth\PasswordController@postReset');
于 2015-12-29T17:09:24.697 回答
0

如果有人在使用新的身份验证系统访问 /login 和 /register 时遇到问题。您应该查看会话文档

存储会话的方式(或某些部分)发生了变化。您必须设置一个会话表。如何做到这一点将在文档中解释。

于 2016-01-09T11:52:05.077 回答
0

您可以使用别名路由:

Route::get('auth/login', ['as'=>'getLogin', 'uses'=>'Auth\AuthController@showLoginForm'];
Route::post('auth/login', ['as'=>'postLogin', 'uses'=>'Auth\AuthController@postLogin'];

在控制器中创建公共函数:

public function showLoginForm() {
    return view('auth.login');
}

public function postLogin(Request $data) {
    $users = new User();
    $users->username = $data->txtUsername;
    ...
}
于 2016-02-26T04:28:44.593 回答