【发布时间】:2020-02-10 07:31:32
【问题描述】:
我想在我的数据库中的两个表之间创建一个复合键。我已经找到了如何在迁移中创建它,但是对于 Eloquente ORM,我什么也没找到。
这是我的迁移:
Schema::create('passages', function (Blueprint $table) {
$table->unsignedBigInteger('id_contract');
$table->integer('month');
$table->integer('year');
$table->text('object');
$table->integer('nbPassage');
$table->decimal('priceExclTax');
$table->timestamps();
$table->foreign('id_contract')->references('id')->on('contracts');
$table->primary(['id_contract','mois','annee']);
});
所以我尝试在模型中建立一个归属关系,但是当我尝试保存我的对象时没有任何附加内容,并且我的数据库中没有任何行。所以我认为这是错误的方式。
如果你有想法,请帮助我^^。
【问题讨论】:
-
我不明白你在做什么。你的代码看起来不错。请举一个具体的例子来说明你想要达到的目标。
-
不幸的是,Eloquent 不能拥有复合主键。您是否有理由需要它作为复合主键,而不是仅仅为字段添加唯一索引?
-
在我的应用程序中使用复合键的示例,或者代码示例?
-
是的,我需要它,因为对于一份合同,我不希望在同一年的同一个月有两次通过
-
我不知道,因为我需要检查月份和年份是否已经被该合同的另一个段落占用。编辑:也许我可以在模型中检查,但我不确定在哪里
标签: php laravel eloquent laravel-6.2