如何使用引用名称与列名称不相关的表的列创建 Lumen 迁移?
示例:
以下内容会抛出找不到 user_destinations 的错误。
$table->foreign('user_destination')->references('id')->on('locations');
或
$table->foreignId('warehouse_isle_shelf_id')->constrained();
这里的目的是让它寻找
warehouse_isles
而不是 warehouse_isle_shelves
或 warehouse_isle_shelfs
,因为我不确定 Lumen 如何处理复数形式的单词,复数不只是采用单数形式并附加 s
.
您的代码应该可以工作,因为您已经引用了表名称
locations
:
$table->foreign('user_destination')->references('id')->on('locations');
但是第二行要求 Laravel 猜测名字。这是文档中讨论它的相关部分:
foreignId 方法是 unsignedBigInteger 的别名,而 constrained 方法将使用约定来确定引用的表名和列名。如果您的表名与约定不匹配,您可以通过将其作为参数传递给约束方法来指定表名
所以它应该看起来像:
$table->foreignId('warehouse_aisle_shelf_id')->constrained('warehouse_aisles');