【问题标题】:Laravel 5 | Integrity constraint violation: 1452Laravel 5 |违反完整性约束:1452
【发布时间】:2016-05-25 21:58:06
【问题描述】:

当我尝试使用多个标签创建消息时:

控制器:Message_cont

public function store() {
    $tags = $request->input('tags');
    $message = \Auth::User()->messages()->create(request::all());
    $message->tags()->attach($tags);
}

型号:标签

public function messages() {
    return $this->belongsToMany('App\messages');
}

我得到 MySQL 插入错误:

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or 
update a child row: a foreign key constraint fails 
(`homestead`.`messages_tags`, CONSTRAINT `messages_tags_tags_id_foreign` 
FOREIGN KEY (`tags_id`) REFERENCES `tags` (`id`) ON DELETE CASCADE) (SQL: 
insert into `messages_tags` (`created_at`, `messages_id`, `tags_id`, 
`updated_at`) values (2016-02-15 04:44:14, 1, 3, 2016-02-15 04:44:14), 
(2016-02-15 04:44:14, 2, 3, 2016-02-15 04:44:14))

我的代码有什么问题?

【问题讨论】:

  • 您的tags 表中有id 为3 的条目吗?
  • 哦.....是的....谢谢Q....!
  • id 有什么?
  • 是的,我只是忘记了那个顺序...实际上,那个 id 代表“message_id”...我只有 2 个标签...
  • 您正试图在您的 messages_tags 表中关联一个 ID 为 3。确保您的 tags 表中有该 ID 3

标签: php mysql laravel foreign-keys laravel-5.2


【解决方案1】:

您正试图在您的 messages_tags 表中关联一个 ID 为 3 并且您的 tags 表中没有此类条目。这就是您收到完整性违规错误的原因。

确保您的 tags 表中有该 ID 3

【讨论】:

  • 谢谢 Q... 我已经在我的插入顺序中发现了这个问题。现在它的工作正常......!
猜你喜欢
  • 2016-08-11
  • 2021-07-23
  • 2015-11-27
  • 2012-06-14
  • 2015-07-17
  • 2019-04-12
  • 2016-11-22
  • 2014-06-15
相关资源
最近更新 更多