【发布时间】: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表中有该 ID3。
标签: php mysql laravel foreign-keys laravel-5.2