1. 程式人生 > >Laravel 5.5 注意事項和常見問題

Laravel 5.5 注意事項和常見問題

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 。