最近新建了個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的升級,並生成了前端腳手架,登錄、註冊功能。
總結:要多看文檔,特別是前言也很重要,每個版本的升級說明