欢迎各位兄弟 发布技术文章
这里的技术是共享的
在 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`)');
}
希望对大家有用。