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
什么可以解决这个问题?
答
您需要指定一个外键。举例来说,如果你有用户有许多文章的关系,你要插入一个新的文章,你需要这样做:
$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
我们要需要更多的数据,您的迁移对于表格以及与请求一起发送的内容是什么,以及您的模型是什么样的? – Maantje