我有两个表atms和atm_devices,其中atms表有很多atm_devices。在创建新的Atm时,我还想创建与Atm相关的新atm_devices。在添加任何atm之前,我有15个atms和60个atm_devices,其中atms的id为1到15(包括1和15),atm_devices的id为1到60(含)。当我添加新的Atm时,id从16开始;到目前为止没有错。问题在创建atm_devices时开始,其中第一个新创建的atm_devices被自动分配一个id,该id等于新atm的id(在本例中为16)。这是创建"完整性约束违规:1062重复输入"因为60个atm_devices已经占用了1到60的数字。这是我的代码 `$ atm1 =新的Atm; $ atm-> name = $ request-> get(' name'); $ atm-> ip_address = $ request-> get(' ip_address'); $ ATM->保存(); $ atmDevice1 = new AtmDevice; $ atmDevice1-> name =' Top Cassette&#39 ;; $ atmDevice1-> oid =' .1.3.6.1';
$atmDevice2 = new AtmDevice;
$atmDevice2->name = 'Cash Dispenser Second Cassette';
$atmDevice2->oid = '.1.3.6.1.4';
$atm->atmDevices()->saveMany([$atmDevice1, $atmDevice2]);`
答案 0 :(得分:0)
用于外键的名称和用于关系定义的名称应该是这样的:
public function atmDevices()
{
return $this->hasMany('App\AtmDevice', 'atm_id');
} //relationship definition
$table->foreign('atm_id')->references('id')->on('atms')->onDelete('cascade');//migration table states atm_id is a foreign key