1. 创建laravel 6项目
在工作目录下执行如下命令,通过composer创建laravel项目。
composer create-project --prefer-dist laravel/laravel blog "6.*"
该命令会在当前工作目录下生成blog项目目录。整个目录结构如下,关于laravel项目目录结构的说明可以参考Laravel Docs
然后使用php artisan serve 启动网站服务,或者配置nginx来运行网站。
初始的网站只有两个路由,可以通过命令php artisan route:list 来检查路由。
默认路由/,只是一个静态的欢迎页面。
API路由/api/user,出错了,原因是刚刚初始的laravel项目还没有安装laravel/ui。laravel/ui就是在laravel version 6之后单独拎出来的用户认证“脚手架”。它提供了用于基本用户认证控制器、模型、视图等代码。
2. 下载laravel/ui
执行命令:composer require laravel/ui:^1.0 --dev
注意要laravel framework 6只支持版本1的laravel/ui,所以这里必须加上版本限制,--dev可加可不加。
这个命令只是修改了根目录下的composer.json与composer.lock文件(还有下载laravel/ui包到/vendor目录下,并修改了/vendor/composer/autoload_*.php文件,追加了Laravel\Ui命名空间的自动加载。不过默认的git是不追踪vendor目录的^_^)
3. 使用laravel/ui的用户认证“脚手架”
执行命令:php artisan ui vue --auth
该命令自动为我们生成了控制器HomeController.php(认证相关的控制器本来就有),在routes/web.php生成新的路由信息,生成认证页面的模版文件,生成认证页面的静态文件(js, sass, vue这些)
这时候访问网站首页,会发现右上角多了两个按钮LOGIN与REGISTER。点击LOGIN或者REGISTER就能进入登录或者注册页面。但是此时页面排版是混乱的,因为没有真正的静态文件js与css。刚刚生成的静态文件其实是在/resources目录下预处理前的静态文件,还需要用npm生成真正的静态文件并放到/public目录下才行。
4. 下载npm依赖包
执行命令:npm install
该命令会在项目根目录下新建目录/node_modules,将JavaScript依赖包下载到该目录中。同时生成/package-lock.json文件。
5. 生成前端静态文件
执行命令:npm run dev
该命令会生成项目真正的前端静态文件。这时候再刷新登录/注册页面就会发现页面正常了。
部署到生产环境的话,应该用: npm run production 。可以有效减小生成的app.js与app.css的文件大小。
6. 配置数据库
虽然登录/注册页面看起来正常了,但是此时我们还没有配置网站的数据库连接,也还没生成用户表。
6.1 配置数据库连接
修改/.env文件中的数据库连接配置。
6.2 自动生成数据库表
执行命令:php artisan migrate
该命令会根据/database/migrations目录下的几个migrate文件自动创建表。其中migrations表使用来记录migrate动作的。
此后就可以正常的使用用户登录/注册功能了。
7. 配置邮件发送服务
此时如果想使用默认的重置密码页面,就得先配置Laravel的邮件发送服务。
以使用网易个人邮箱的smtp服务为例,去网易邮箱的设置页面开启POP3/SMTP服务,这时会给你一个授权码,这个授权码就第三方邮件服务登录网易邮箱的密码(而不是用你自己的用户登录密码)。所以修改/.env文件中的MAIL配置如下:
MAIL_USERNAME就是网易邮箱的用户名
MAIL_PASSWORD就是刚刚得到的授权码