Laravel“外键约束失败”
Posted
技术标签:
【中文标题】Laravel“外键约束失败”【英文标题】:Laravel "foreign key constraint fails" 【发布时间】:2016-08-17 17:04:31 【问题描述】:工作模型中的关系
public function account()
return $this->belongsTo(EbayAccount::class, 'id', 'account_id');
EbayAccount 中的关系
public function jobs()
return $this->hasMany(Job::class, 'account_id', 'id');
主要代码 //那个工作
$job = new Job();
$job->account_id = $acc->id;
$job->action = 'getOrders';
$job->days = 30;
$job->save();
//那行不通
Job::create([
'account_id' => $acc->id,
'action' => 'getOrders',
'days' => 30
]);
//error 'account_id' 外键约束失败
创建表作业
$table->integer('account_id')->unsigned()->index();
$table->foreign('account_id')->references('id')->on('ebay_accounts')->onDelete('cascade');
shchema 数据库
写了
protected $fillable = [
'account_id','action', 'priority', 'pagination', 'p2', 'p3', 'days','day_start', 'day_end', 'done'
];
【问题讨论】:
给出表的架构! 【参考方案1】:我认为问题出在您的“工作”模型中。您是否在工作模型中设置了$fillable
。尝试将 'account_id, action, days' 添加到 $fillable
数组中,如下所示:
protected $fillable = ['account_id', 'action', 'days'];
这将为模型启用批量分配到您的数据库。 https://laravel.com/docs/5.2/eloquent#mass-assignment
【讨论】:
alredy write protected $fillable = [ 'account_id','action', 'priority', 'pagination', 'p2', 'p3', 'days','day_start', 'day_end' , '完成' ];以上是关于Laravel“外键约束失败”的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 迁移 - 违反完整性约束:1452 无法添加或更新子行:外键约束失败
完整性约束违规:1452 无法添加或更新子行:外键约束失败(Laravel 应用程序)