php - 更改数据库列的排序规则在 laravel 迁移中不起作用

标签 php mysql laravel laravel-5

我想更改“users”表中“about_me”列的排序规则。为此,我使用下面的代码。我只是将排序规则更改为 utf8mb4_unicode_ci 但代码无法正常工作。

 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 中进行了更改,这有助于我将数据保存在 db 中,但是在获取数据库之后,我发现特殊符号没有显示,当我将该列的 Collat​​ion 更改为 utf8mb4_unicode_ci 然后它工作正常。但我想在迁移中做到这一点。当前代码无法正常工作,我需要运行良好的正确代码。

最佳答案

Laravel 支持为 MySQL 修改每列的排序规则。对于表范围的修改,您需要编写原始查询。

public function up()
{

    DB::statement("ALTER TABLE users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci");
}

关于php - 更改数据库列的排序规则在 laravel 迁移中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46587931/

相关文章:

MySQL CrossTab 并删除重复项

PHP - 提交数据枚举组合按钮

javascript - 如何使用数组数组中的多个变量进行计算和显示(Vue+laravel)

php - Laravel Eloquent 区分大小写

php - 在生产环境中重置 Laravel 迁移

PHP 未接收到 JavaScript 值

javascript - 如何让2个html页面进行通信

php - 为 HTML 输入字段格式化 MySQL 查询

在脚本中运行时 mysqldump 不会转储所有内容

php - 使用从数据库中选择的不同数据发送组邮件