一直都是用laravel 7 左右的,現在要求將項目升級到laravel 11 和使用PHP8,隨手記錄一些小問題,laravel 11的包是領導給的,沒有使用composer?安裝,所以我也不確定和官方的是否一致
遇到這問題
可以這樣
env 中默認的數據庫驅動是?SESSION_DRIVER=sqlite 的,根據情況,我修改成mysql
session 的驅動 默認是 database 的,需要在數據庫中,創建一個sessions 的表,如果想使用 數據庫來保存session,而又沒有這個表的,可以這樣:
php artisan session:tablephp artisan migrate
如果想使用傳統的,使用file 來保存session 的話,可以修改?
\config\session.php,
'driver' => env('SESSION_DRIVER', 'file'),
mysql 的 默認字符編碼是?utf8mb4_0900_ai_ci,如果使用低版本的 mysql ,會提示錯誤的,修改方法
config\database.php
'mysql' => ['driver' => 'mysql','url' => env('DB_URL'),'host' => env('DB_HOST', '127.0.0.1'),'port' => env('DB_PORT', '3306'),'database' => env('DB_DATABASE', 'laravel'),'username' => env('DB_USERNAME', 'root'),'password' => env('DB_PASSWORD', ''),'unix_socket' => env('DB_SOCKET', ''),'charset' => env('DB_CHARSET', 'utf8mb4'),'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),//修改此字符編碼'prefix' => '','prefix_indexes' => true,'strict' => true,'engine' => null,'options' => extension_loaded('pdo_mysql') ? array_filter([PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),]) : [],],
使用自定義的方法
./composer.json
"autoload": {"psr-4": {"App\\": "app/","Database\\Factories\\": "database/factories/","Database\\Seeders\\": "database/seeders/"},//新增代碼段"files": ["app/Common/function.php"]},
?執行這命令
composer dump-autoload
初始沒有api.php,需要執行
php artisan install:api