更改数据库列的排序规则在laravel迁移中不起作用
问题描述:
我想更改“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然后它工作正常。但我想在迁移中做到这一点。目前的代码无法正常工作,我需要正确的代码才能正常工作。
答
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");
});
}
Laravel支持修改MySQL每列的排序规则。您需要在此处编写一个原始查询来进行全表修改 –