Lumen:插入一对多数据时的外键约束冲突

Lumen:插入一对多数据时的外键约束冲突

问题描述:

我正在学习如何插入多对多和多对多关系的过程。目前,当我尝试创建一个新项目时,我在外键约束条件下陷入困境。Lumen:插入一对多数据时的外键约束冲突

我的代码是非常简单的:

$this->model->create(
    $request->all() 
); 

凡要求有项目ID和项目存在。

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails 

什么可以解决这个问题?

+0

我们要需要更多的数据,您的迁移对于表格以及与请求一起发送的内容是什么,以及您的模型是什么样的? – Maantje

您需要指定一个外键。举例来说,如果你有用户有许多文章的关系,你要插入一个新的文章,你需要这样做:

$user->articles()->create($request->all()); // Foreign key will be inserted automatically. 

或指定的外键:

$this->article->create(array_merge(['user_id' => auth()->id()], $request->all())); 
+0

看起来像第一个例子帮助了我,非常感谢。但第二个没有。所以,如果我有用户对象,并使用关系,并通过请求一切都很好。如果在构造中,我设置了我的文章模型,并通过array_merge或$ request-> all传递了user_id,我仍然会得到外键约束,这很奇怪。 – NinetyHH