菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
2274
4

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

原创
05/13 14:22
阅读数 2429

在 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`)');
    }

希望对大家有用。

发表评论

0/200
2274 点赞
4 评论
收藏
为你推荐 换一批