最近新建了个laravel项目,想照着文档进行练习,看的是最新的laravel 7文档,正好看到了用户认证这一块,
执行了php artisan ui vue --auth命令,然后就报错了,看错误信息大概是版本太低,起码要laravel 7.0版本以上。
现在记录一下解决办法
一、修改一些配置文件
1.首先要将修改composer.json文件,直接将以下参数修改至相应版本
"laravel/framework": "^7.5",
"laravel/tinker": "^2.0"
"facade/ignition": "^2.0",
"nunomaduro/collision": "^4.1",
"phpunit/phpunit": "^8.5"
修改后如下图所示
"require": {
"php": "^7.2",
"fideloper/proxy": "^4.0",
"laravel/framework": "^7.5",
"laravel/tinker": "^2.0"
},
"require-dev": {
"facade/ignition": "^2.0",
"fzaninotto/faker": "^1.9.1",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^4.1",
"phpunit/phpunit": "^8.5"
},
2.Symfony 5 相关更新
在App\Exceptions\Handler文件中,
①增加 use Throwable;
<?php
namespace App\Exceptions;
use Exception;
use Throwable;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
② 将report和render中的Exception改成Throwable
/**
* Report or log an exception.
*
* @param \Exception $exception
* @return void
*
* @throws \Exception
*/
public function report(Throwable $exception)
{
parent::report($exception);
}
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $exception
* @return \Symfony\Component\HttpFoundation\Response
*
* @throws \Exception
*/
public function render($request, Throwable $exception)
{
return parent::render($request, $exception);
}
3. 更新config/session.php文件,修改secure中的null值和修改same_site的值为lax
'secure' => env('SESSION_SECURE_COOKIE', null),
'same_site' => 'lax',
4.(可选操作)如果之前已安装laravel/ui
可直接升级^2.0版本
composer require laravel/ui "^2.0"
5.(可选操作)修改日期序列化的显示格式(如果日期格式显示不是原来的Y-m-d H:i:s格式的话需要修改)
vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php
修改serializeDate方法中的返回值
protected function serializeDate(DateTimeInterface $date)
{
return $date->format($this->dateFormat ?: 'Y-m-d H:i:s');
}
这部分配置可根据官方文档来自主选择配置
文档地址:https://learnku.com/docs/laravel/7.x/upgrade/7445
二.更新依赖
composer update
三.更新laravel framework
composer require laravel/framework
然后会出现正在更新依赖,这段时间要等个十几分钟左右,有时候网络不好会更长
Using version ^7.5 for laravel/framework
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
更新成功显示是下图这样的。
四.安装前端脚手架
composer require laravel/ui --dev
同样要等它更新成功依赖,安装成功如下图
五.生成基本脚手架vue,登录、注册功能
php artisan ui vue --auth
成功后显示如下图
六.编译新的脚手架
npm install
执行后显示如下代码
七.运行dev
npm run dev
执行成功后显示如下,而且右下角会有一个laravel Mix build success的弹窗,显示laravel mix编译成功。
至此,完成了laravel旧版本到laravel7的升级,并生成了前端脚手架,登录、注册功能。
总结:要多看文档,特别是前言也很重要,每个版本的升级说明