当我尝试创建具有多个标签的消息时:
控制器 : 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))
我的代码有什么问题?
您正在尝试在messages_tags
表中关联 id 3
,但tags
表中没有这样的条目。这就是您收到完整性违规错误的原因。
确保tags
表中有该 ID 3
。