【问题标题】:Lumen: Foreign key constraint violation when inserting data one to manyLumen:一对多插入数据时违反外键约束
【发布时间】:2018-03-31 22:09:29
【问题描述】:

我正在学习如何插入多对多和一对多的关系。目前,当我尝试创建新项目时,我陷入了外键约束。

我的代码很简单:

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

请求具有项目 id 并且项目存在的位置。

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

有什么办法可以解决这个问题?

【问题讨论】:

  • 我们需要更多数据,您的表迁移是什么样的,随请求发送的是什么样的,您的模型是什么样的?

标签: php mysql laravel lumen


【解决方案1】:

您需要指定一个外键。例如,如果您有 User has many Articles 关系并且您正在尝试插入新文章,您需要这样做:

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

或者指定外键:

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

【讨论】:

  • 看来第一个例子对我有帮助,非常感谢。但是第二个没有。因此,如果我有用户对象并使用关系并传递请求,一切都很好。如果在构造中设置我的文章模型并通过 array_merge 或在 $request->all 中传递 user_id,我仍然会得到外键约束,这很奇怪......
猜你喜欢
  • 2018-04-04
  • 1970-01-01
  • 1970-01-01
  • 2020-04-01
  • 1970-01-01
  • 2014-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多