欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Laravel 5.3 下通过 migrate 添加 “全文索引” 的方法 有大用

Laravel 5.3 下通过 migrate 添加 “全文索引” 的方法

在 Laravel 5.3 的官方文档中,并未提及如何在创建 migrate 时给一个字段添加 “全文索引”,其实方法也不难,只需照此办理:

首先,在 migrate 中指定数据表的引擎为 “MyISAM”,因为在 MySql 5.6 以前是无法在 InnoDB 下将一个数据表的字段设置为全文索引的。具体语句为:

$table->engine = 'MyISAM';

之后,为字段添加全文索引的语句比较特殊,Laravel 没有直接提供,需要我们执行一段自定义的 SQL 语句:

DB::statement('ALTER TABLE `table` ADD FULLTEXT(`content`)');

这样就可以了。以下是一个 migrate 的节选:

    public function up()
    {
        Schema::create('example', function (Blueprint $table) {
            $table->engine = 'MyISAM';

            $table->increments('id');
            $table->string('ml_num', 20);
            $table->longText('ad_text')->nullable()->comment('简介');
            ...
        });

        Schema::table('mlsdatas', function ($table) {
            $table->unique('ml_num');
            $table->index('area');
            ...
        });

        DB::statement('ALTER TABLE `example` ADD FULLTEXT(`content`)');
    }

希望对大家有用。


来自  https://learnku.com/laravel/t/3571/the-method-of-adding-full-text-index-through-migrate-under-laravel-53


普通分类: