laravel 6.^ 用户登陆手脚架
2020年2月16日首先要确定已完成laravel 6.^ 集成 Bootstrap这个步骤
Laravel 自带了用户认证功能,我们将利用此功能来快速构建我们的用户中心。
首先执行认证脚手架命令,生成代码:
1 |
$ php artisan ui:auth |
命令 ui:auth
会询问我们是否要覆盖 app.blade.php
,因为我们在前面章节中已经自定义了『主要布局文件』—— app.blade.php
,所以此处输入 no
,如下:
打开 routes/web.php
查看修改了哪些内容:
routes/web.php
1 2 3 4 5 6 |
<?php Route::get('/', 'PagesController@root')->name('root'); Auth::routes(); Route::get('/home', 'HomeController@index')->name('home'); |
可以看到在我们的主页下,多了两个表达式,先看第一个:
1 |
Auth::routes(); |
此处是 Laravel 的用户认证路由,可以在 vendor/laravel/framework/src/Illuminate/Routing/Router.php
中搜索关键词 LoginController
即可找到定义的地方,以上等同于:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// 用户身份验证相关的路由 Route::get('login', 'Auth\LoginController@showLoginForm')->name('login'); Route::post('login', 'Auth\LoginController@login'); Route::post('logout', 'Auth\LoginController@logout')->name('logout'); // 用户注册相关路由 Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register'); Route::post('register', 'Auth\RegisterController@register'); // 密码重置相关路由 Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request'); Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email'); Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset'); Route::post('password/reset', 'Auth\ResetPasswordController@reset')->name('password.update'); // Email 认证相关路由 Route::get('email/verify', 'Auth\VerificationController@show')->name('verification.notice'); Route::get('email/verify/{id}/{hash}', 'Auth\VerificationController@verify')->name('verification.verify'); Route::post('email/resend', 'Auth\VerificationController@resend')->name('verification.resend'); |
为了更加直观,我们将在 web.php
中使用以上替换 Auth::routes();
。
再来看下面这一行:
1 |
Route::get('/home', 'HomeController@index')->name('home'); |
生成的视图
ui:auth
命令为我们生成了 resources/views/auth
下几个文件:
视图名称 | 说明 |
---|---|
register.blade.php | 注册页面视图 |
login.blade.php | 登录页面视图 |
verify.blade.php | 邮箱认证视图 |
passwords/email.blade.php | 提交邮箱发送邮件的视图 |
passwords/reset.blade.php | 重置密码的页面视图 |
移除无用页面
因为无需使用 ui:auth
生成的主页,请运行以下命令删除无用文件:
1 2 |
$ rm app/Http/Controllers/HomeController.php $ rm resources/views/home.blade.php |