按照下面的语法,我可以根据字段name
和bakery_id
轻松地创建一个复合唯一键:
Schema::create('product_categories', function (Blueprint $table) {
$table->id();
$table->foreignId('bakery_id')->constrained();
$table->string('name', 30);
$table->boolean('enabled')->default(true);
$table->timestamps();
$table->unique(['bakery_id', 'name']);
});
当我使用“foreignIdFor()
“方法而不是“foreignId()
“时,有没有办法以编程方式确定列的名称?
Schema::create('product_categories', function (Blueprint $table) {
$table->id();
$table->foreignIdFor(Bakery::class)->constrained();
$table->string('name', 30);
$table->boolean('enabled')->default(true);
$table->timestamps();
$table->unique(['???', 'name']);
});
4条答案
按热度按时间ckocjqey1#
只需捕获列定义并使用该定义:
tp5buhyn2#
在laravel 8 foreignIdFor中,可以为第二个参数传递主键
sirbozc53#
在laravel 8和更高版本中,您可以将列名指定为第二个参数:
然后:
});
对于短代码,您可以链接**-〉unique()**函数
});
czq61nw14#
我不明白你的问题,但也许这能帮上忙