以下這段代碼為laravel中檢測表中是否存在索引的函數,通過該函數傳遞兩個參數,分別為$table表名,$name字段名,來自動完成檢測,示例代碼如下:
/**
*檢測表中索引是否存在
*$table 表名
*$name 字段名
*/
public function hasIndex($table, $name)
{
$conn = Schema::getConnection();
$dbSchemaManager = $conn->getDoctrineSchemaManager();
$doctrineTable = $dbSchemaManager->listTableDetails($table);
return $doctrineTable->hasIndex($name);
}
if($this->hasIndex('test','test_email_index')){
$table->dropIndex('test_email_index');
}
使用這個函數判斷索引相當方便。