私は2つのテーブルatmsとatm_devicesを持っていますが、atmsテーブルにはatm_devicesがたくさんあります。新しいAtmを作成しながら、Atmに関連する新しいatm_devicesを作成したいと思っています。 atmを追加する前に、私は15 atmsと60 atm_devicesを持っています。atmsのidは1〜15で、atm_devicesのidは1〜60です。新しいAtmを追加すると、idは16から始まります。これまで何も間違っていません。この問題はatm_devicesが作成されたときに始まり、最初に新しく作成されたatm_devicesには、新しいatm(この場合は16)のidに等しいidが自動的に割り当てられます。これは、「整合性制約違反:1062 Duplicate entry」を作成しています。これは、1〜60の数値がすでに60 atm_devicesで占有されているためです。ここに私のコードは `$ atm1 = new Atm; $ atm-> name = $ request-> get( 'name'); $ atm-> ip_address = $ request-> get( 'ip_address'); $ atm-> save(); $ atmDevice1 =新しいAtmDevice; $ atmDevice1-> name = 'トップカセット'; $ atmDevice1-> oid = '.1.3.6.1';Laravel 5.2関連モデルの挿入に整合性制約違反があります
$atmDevice2 = new AtmDevice;
$atmDevice2->name = 'Cash Dispenser Second Cassette';
$atmDevice2->oid = '.1.3.6.1.4';
$atm->atmDevices()->saveMany([$atmDevice1, $atmDevice2]);`
あなたは気圧のデバイス上の外部キーを定義したように感じます主キーと同じである必要があります。あなたの関係定義は何ですか? – apokryfos
ありがとうapokryfosその理由は、私は私のコードでエラーがあったと私は$ this-> hasMany( 'App \ AtmDevice'、 'id')を返すから変更しました。 $ this-> hasMany( 'App \ AtmDevice'、 'atm_id')を返します。 – temesgen