2015-01-04 79 views
3

我試圖以雄辯的方式插入記錄。如何在Laravel中插入許多belongsTo關係的記錄雄辯

在基本情況下很明顯。例如,如果我有一個帖子一個博客,每一個職位屬於一個用戶,我可以做到這一點:

$post = new Post; 
$post->content = 'Post content'; 
$user->posts()->save($post); 

但我應該怎麼做,如果我的帖子是屬於用戶,類別和組在同一時間?

我的第一個想法是這樣來做:

$post = new Post; 
$post->content = 'Post content'; 
$user->posts()->save($post); 
$group->posts()->associate($post); 
$cat->posts()->associate($post); 

但它不工作,因爲組ID和類別ID爲空,當我將它保存到數據庫,它是不允許的。

我現在正在做的是:

$post = new Post; 
$post->content = 'Post content'; 
$post->group = $group->id; 
$post->category = $cat->id; 
$user->posts()->save($post); 

但我不認爲這是正確的方式。

難道有人指着我正確的方向嗎?

+0

只需保存您的類別和組試圖聯想之前。 '$ group-> save();' – 2015-01-04 14:51:33

回答

3

您正在使用associate錯誤的方法。您必須在belongsTo關係方而不是hasMany上調用它。

試試這個:

$post = new Post; 
$post->content = 'Post content'; 
$post->category()->associate($cat); 
$post->group()->associate($group); 
$user->posts()->save($post); 
+0

它是有道理的,但我不能讓它工作。在我的Post模型中,我有一個名爲group()的關係「belongsTo」。但是當我做$ post-> group() - > associate($ group);我收到「未定義的屬性組」錯誤。我會繼續努力並讓你知道。 – TheJohnny 2015-01-04 16:09:57

+0

嗯,你可以用關係定義更新你的問題嗎?也許這就是問題所在。 – lukasgeiter 2015-01-04 16:13:22

+0

我想我找到了爲什麼我有這個問題:http://stackoverflow.com/questions/25026123/laravel-belongs-to-throwing-undefined-error – TheJohnny 2015-01-04 16:23:40