微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

违反完整性约束:1452无法添加或更新子行Laravel 6

如何解决违反完整性约束:1452无法添加或更新子行Laravel 6

我有一个用户,它之间有一个belongToTo hasMany关系,这意味着一个用户生活在一个状态,当我想添加一个用户时,它给我错误

sqlSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败(ʻaswak .ʻusers,CONSTRAINT`users_city_id_foreign FOREIGN KEY ( city_id ) REFERENCES ʻusers(ʻid { {1}}() ON DELETE CASCADE) (sql: insert into ʻusers,电子邮件 name密码,电话,日期, country_id , state_id ,,{{ 1}},ʻAutreh ,ʻautrei,ʻadresser city_id,ʻimages ,ʻadressem,ʻimage)值(achraf khazzou,achraf.khazzou @ gmail.com,$ 2y $ 10 $ g5qibjlVJqMOlhriu5s / TuS8UIoYEVOYFPHBM4UVa,0626341177,1988年6月22日,1,4&#62 7 ?,干草tihit tinghir,干草tihit tinghir,型材\ October2020 \ == eyJpdiI6IjJPRVdIUlFcL3VFZm5uM2syK3kra0pBPT0iLCJ2YWx1ZSI6Ik0zZysyY2FIKzZHMWIxZ1hCdnljM2NhZ0lhsllGblBmaXlNUXNcL1NJZDFVPSIsIm1hYyI6IjZkMzBlODdlNjYwNjBiMWRlYmM2MTkxZmMwMDlkNzFjY2NlYjEzOWJiOTg1ZDViMzg2MDZlZDQxY2EwZWNlMjkifQ。JPEG,[“轮廓October2020 \ \ eyJpdiI6IkFlQmljZlFta2RzeflaZXhGOTZxRWc9PSIsInZhbHVlIjoiQUlPajV6YkZJd1ZHem90ZGdNT3U1dzFlblV MMTJ6QStIbFwvRE1oYTM5eElBdW1RN0dkcW1xV3RoZWZtXC9MU1lkIiwibWFjIjoiY2YyYzBjMTQ3Zjg1OTcyNjQ1OWY1YjI5MW Y4MjBkOTBmZDM3ZWQyMmMyOTQ1ZTg4YjgwMzg0ZjIzMmIwZmFjZiJ9.jpeg “” 简档\ \ October2020 eyJpdiI6IjZnUWVVNEZmR0dHckowV1Erdmlwd0E9PSIsInZhbHVlIjoiaWdWblYwOG93dlhJVldnaTNDdERjXC9DYmVLUVFxUE9OVlBvWHRyVFdTZWRkVnlwWHkwUXhSeGJGb1BlZmFzSmUiLCJtYWMiOiJkMjlmMGQ4OGIwY2IwYTE0ZDZhNWQ1MzM1YzY5YWRhOWUwNmYwNjNkZmU2ZDhmM2QxMGU1ZTY2YzdlNmQwZTM0In0 = .JPEG“] 2020年10月10日下午5时32分58秒,2020年10月10日5时32分58秒P.M。))。

状态表

enter image description here

城市表

enter image description here

有时,由于知道表状态和城市被状态和城市折叠,有时会给我错误CONSTRAINT ,ʻupdated_at,有时还会出现CONSTRAINT created_at

User.PHP

users_city_id_foreign

City.PHP

users_state_id_foreign

State.PHP

public function country() { 
    return $this->belongsTo('App\Country'); 
}

public function state() { 
    return $this->belongsTo('App\State');  
}

public function city() { 
    return $this->belongsTo('App\City'); 
}

用户

public function users(){
    return $this->hasMany('App\User'); 
}  

解决方法

您的外键引用错误。您引用父表的键,而不是外键声明中的表本身。更改您的迁移文件

$table->bigInteger('country_id')->unsigned()->nullable();
$table->foreign('country_id')->references('id') 
          ->on('countries')->onDelete('cascade');
$table->bigInteger('city_id')->unsigned()->nullable();
$table->foreign('city_id')->references('id') 
          ->on('cities')->onDelete('cascade');
$table->string('autreh')->nullable();
$table->bigInteger('state_id')->unsigned()->nullable();
$table->foreign('state_id')->references('id') 
          ->on('states')->onDelete('cascade');

我假设您使用表名,如果需要,请根据您的表名进行更改。再次迁移,这将起作用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。