Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用查询生成器在Laravel中添加全文索引_Php_Mysql_Laravel_Full Text Indexing_Laravel Query Builder - Fatal编程技术网

Php 使用查询生成器在Laravel中添加全文索引

Php 使用查询生成器在Laravel中添加全文索引,php,mysql,laravel,full-text-indexing,laravel-query-builder,Php,Mysql,Laravel,Full Text Indexing,Laravel Query Builder,这是在MySQL中添加全文索引的查询: ALTER TABLE `TableName` ADD FULLTEXT INDEX `IndexName` (`ColumnName`); 但是如何使用Laravel查询生成器添加全文索引呢?应该这样做:DB::statement 语句('ALTER TABLE TableName ADD FULLTEXT IndexName(ColumnName)')用于多个列/字段 DB::statement('ALTER TABLE Database.Table

这是在MySQL中添加全文索引的查询:

ALTER TABLE `TableName`
ADD FULLTEXT INDEX `IndexName` (`ColumnName`);

但是如何使用Laravel查询生成器添加全文索引呢?

应该这样做:
DB::statement


语句('ALTER TABLE TableName ADD FULLTEXT IndexName(ColumnName)')

用于多个
列/字段

DB::statement('ALTER TABLE Database.TableName ADD FULLTEXT fulltext_index (Col_1, col_2, col_3)');

在Laravel>=6.15.0上,您可以像这样扩展
illumb\Database\Schema\Grammars\MySqlGrammar
illumb\Database\Schema\Blueprint
类(例如
AppServiceProvider的
boot()
方法):

使用lightlight\Database\Schema\Blueprint;
使用light\Database\Schema\Grammars\MySqlGrammar;
使用light\Support\Fluent;
Blueprint::宏('fulltext',函数($columns,$name=null,$algorithm=null)
{
返回$this->indexCommand('fulltext',$columns,$name,$algorithm);
});
Blueprint::宏('dropFulltext',函数($index)
{
返回$this->dropIndexCommand('dropIndex',fulltext',$index);
});
MySqlGrammar::宏('compileFileLTEXT',函数(Blueprint$Blueprint,Fluent$命令)
{
返回$this->compileKey($blueprint,$command,'fulltext');
});
并在您的迁移中使用它,如下所示:

Schema::table('flights',函数(Blueprint$table){
$table->全文(['name','airline']);
});
//逆转迁移
Schema::table('flights',函数(Blueprint$table){
$table->dropFulltext(['name','airline']);
});