Laravel 5.2插入相关模型具有完整性约束违规

时间:2017-01-30 13:51:15

标签: php mysql laravel laravel-5.2

我有两个表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]);`

1 个答案:

答案 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