Laravel 5.5 注意事項和常見問題
阿新 • • 發佈:2019-01-01
config/app.php 配置檔案
修改 config/app.php 中的時區 timezone 配置:
'timezone' => 'Asia/Shanghai',
請將時區修改為你當前所在的時區。
.env 環境變數配置檔案
該檔案非常重要,裡面儲存著和開發環境相關的變數配置,比如資料庫配置。
請及時將資料庫配置修改為和你的開發環境相關的配置。
注意:請勿濫用 .env 環境變數配置檔案,和環境無關的變數就不要存放在該檔案中,而應存放到 config 目錄中的對應檔案。
php artisan migrate 命令
Laravel 預設使用 utf8mb4 字符集,它支援直接在資料庫儲存表情等。
如果你使用的 MySQL 版本低於5.7.7 或 MariaDB 版本低於10.2.2 ,遷移時會導致 MySQL 建立索引時出錯。
可能出現下面的錯誤提示:
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
解決方法:
你可以手動配置遷移生成的預設字串長度。修改 app/Providers/AppServiceProvider.php 檔案:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Schema::defaultStringLength(191);
}
常見問題
DateTime 異常
報錯資訊:
DateTime::__construct(): Failed to parse time string (2018-03-12 07:57:45.-353038) at position 24 (0): Unexpected character
解決方法:
修改 vendor/nesbot/carbon/src/Carbon/Carbon.php 檔案,大概在 399 行。
在這行程式碼
$time = $dateTime->format(static::DEFAULT_TO_STRING_FORMAT).'.'.$microTime;
的上面,加上一行程式碼:
$microTime = substr($microTime, 0, 4);
主要是 $time 字串解析出了問題,如果還是不行的話,你就不要拼接後面的 $microTime 。