Laravel 8,数据库迁移。我知道我可以使用长格式:
$table->foreign('really_long_table_name_id', 'foreign_key_name')->references('id')->on('really_long_table_name')->onUpdate('cascade')->onDelete('cascade');
创建具有特定名称的外键,其中(就像我的情况一样)Laravel将通过constrained()方法自动生成的名称:
$table->foreignId('really_long_table_name_id')->constrained()->onUpdate('cascade')->onDelete('cascade');
会太长,导致MySQL抱怨。
有可能使用限制()方法并指定foreign_key_name,而不是让它是动态生成的吗?因为我正在努力在文档中看到它,或任何SO搜索。
您可以使用index
方法来更新索引的名称。
$table->foreignId('really_long_table_name')
->constrained()
->cascadeOnUpdate()
->cascadeOnDelete()
->index('index_name');