首頁  >  文章  >  後端開發  >  Laravel5.4框架中解決特殊欄位太長導致migrations報錯的方法

Laravel5.4框架中解決特殊欄位太長導致migrations報錯的方法

黄舟
黄舟原創
2017-10-24 09:07:001857瀏覽

前言

本文主要介紹了Laravel 5.4因特殊字段太長導致migrations報錯的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹:

laravel 5.4 改變了預設的資料庫字元集,現在utf8mb4包括儲存emojis支援。 MySQL 需要v5.7.7或更高版本,當你試著在某些MariaDB或一些舊版的的MySQL上執行migrations 指令時,你會碰到下面這個錯誤:


 [Illuminate\Database\QueryException]
 SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `use
 rs_email_unique`(`email`))
 
 [PDOException]
 SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

解決方法

經過查詢,我們可以在AppServiceProvider.php 檔案裡的boot 方法裡設定一個預設值:


#
<?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);
 }
 
 /**
  * Register any application services.
  *
  * @return void
  */
 public function register()
 {
  //
 }
}

以上是Laravel5.4框架中解決特殊欄位太長導致migrations報錯的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn