2014-03-03 46 views
0

我有一個問題,我有2個表(帖子,評論),我想選擇所有帖子+他們的評論數。 我可以在帖子中創建一列「註釋」並在其中寫入計數器,但我認爲這是一個糟糕的解決方案,所以我正在尋找諸如mysql中的虛擬字段/列以獲取帖子查詢中的評論數量。 我可以在Laravel做這個嗎?laravel虛擬域/ cloumn查詢?

感謝

+0

是的,你可以在Laravel做到這一點,這很容易。你有沒有在兩張桌子之間建立你們的關係? – user3158900

+0

是的我在模式中設置了外鍵,在我的模型中設置了hasMany和belongsTo功能。 – user3038158

回答

0

在你Comment型號:

public function post(){ 
    return $this->belongsTo('Post', 'post_id'); 
} 

在你Post型號:

public function comments(){ 
    return $this->hasMany('Comment', 'post_id'); 
} 

在你的控制,得到其所有的意見後。

$post = Post::with('comments')->find(1);

在您看來,顯示文章和它有評論的數量。假設你的帖子有一個title字段。

Post Title: {{ $post->title }} 
The post has {{ $post->comments->count() }} comments 
+0

謝謝,但我忘了是,我需要在數組中的所有職位,並解析它爲json,因爲我會用angularjs他們,所以數組不是問題,但我可以添加一個字段「評論」這個數組有多少條評論? – user3038158