我想創建en Eloquent模型而不立即保存到數據庫。然而,我想要包含所有關係,以便通過一次「push()」調用就可以保存整個結構。雄辯的關係 - 添加(但不保存)到belongsToMany
下面的例子顯示了我想要的。我建立了以下關係:
class Post extends Eloquent
{
public function tags()
{
return $this->belongsToMany('Tag');
}
}
class Tag extends Eloquent
{
public function posts()
{
return $this->belongsToMany('Post');
}
}
漂亮的標準,帖子可以有很多標籤,標籤可以屬於很多帖子。
我明白我可以簡單地做到這一點現在:
//save the post
$post = new Post;
$post->save();
//assign the tag
$post->tags()->save($tag);
不過,我真的在找的是:
//create the post
$post = new Post;
//assign the tag (without saving anything yet!)
$post->tags()->add($tag);
//save the whole thing
$post->push();
相關的文檔是here但似乎沒有提及「添加」belongsToMany而不是「保存」。
任何幫助表示讚賞。
我不認爲這是可能的。帖子和標籤的關聯方式是標籤具有post_id,如果我沒有弄錯,並且id僅在保存帖子時才生成,並且只有標籤才與帖子相關。 – Sandeep
當然 - 實際上post_id和tag_id都會在post_tag表中,但要點。我仍然認爲這將是可能的。從實施的角度來看,我想它需要在樞軸之前簡單地創建父母。所以當然可能 - 但可能目前還沒有實施。 – Blueberry
看起來,如果你有像這樣的數據透視表可能是可能的,你使用一些其他的標識符作爲外鍵,而不是使用生成的ID。隨着這一點,您可以先保存數據透視表,然後保存帖子和相關標籤。 – Sandeep