【发布时间】:2013-03-26 23:52:43
【问题描述】:
我有三个表:blogs、posts、blog_post。这是我的代码。
$post = new Post();
$post->title = HTML::entities(Input::get('title'));
$post->content = Input::get('content');
$post->status = isset($_POST['save']) ? 2 : 1;
$post->save();
$blog = Blog::where('user_id', '=', Auth::user()->id)->first();
$post = $blog->posts()->insert($post);
我得到:
SQLSTATE[23000]:违反完整性约束:1062 重复条目 键 'PRIMARY' 的 '47'
我有一对多的关系。一篇文章可以属于多个博客。
【问题讨论】:
-
听起来你有一个多对多的关系。
-
嗯,一篇文章属于许多博客,一个博客可以有许多文章。
-
是的,这就是多对多关系的定义,不同于你所说的一对多关系。
-
哦,好的,谢谢。因此,任何关于如何保存帖子的想法我都可以在
blog_post中添加指向post_id和blog_id的记录。 -
不幸的是,我不了解 Laravel,所以我不会给出“答案”,但看起来你已经建立了一对多的关系,并且你正在尝试创建发布两次 - 一次在 save() 行,一次在 insert() 行。我假设该框架有一种方法可以建立多对多关系并将博客“添加”到帖子中,反之亦然。
标签: laravel