2017-10-05 93 views
1

我想更改「users」表中「about_me」列的排序規則。爲此,我使用下面的代碼。我只是將排序規則更改爲utf8mb4_unicode_ci,但代碼不起作用。
更改數據庫列的排序規則在laravel遷移中不起作用

public function up() 
    { 
     if (Schema::hasColumn("users", "about_me")) { 
      Schema::table("users", function(Blueprint $table) { 
       $table->collation = 'utf8mb4_unicode_ci'; 
       $table->charset = 'utf8mb4'; 
      }); 
     } 
} 

我已經在/config/database.php改變了,幫我將數據保存在數據庫,但讀取數據庫後,我發現特殊符號不顯示,當我改變了整理列utf8mb4_unicode_ci然後它工作正常。但我想在遷移中做到這一點。目前的代碼無法正常工作,我需要正確的代碼才能正常工作。

+0

Laravel支持修改MySQL每列的排序規則。您需要在此處編寫一個原始查詢來進行全表修改 –

回答

1

Laravel支持修改MySQL的每列排序規則。對於表格範圍的修改,您需要編寫一個原始查詢。

public function up() 
{ 
    Schema::table('users', function (Blueprint $table) { 
     DB::statement("ALTER TABLE {$table->table} CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"); 
    }); 
}