2013-08-22 103 views
0

我需要能夠指定關係條件(一對多)。Laravel 4條件關係

舉例:我們有一個帖子,其中有很多評論,但我只希望用戶A發表評論的帖子,然後返回帖子對象。

我現在認爲這樣做的唯一方法是使用Fluent查詢,該查詢不會返回我希望的Post對象!

編輯:

註釋到的用戶A已經取得誰提出的意見,以郵政用戶的關係不是直接的一個。它將通過評論表。

RE編輯:

難道還可以說有明顯的帖子?而不是返回3相同的郵政對象?

+0

你可以試試這個'$ post = Posts :: with('comments') - > where('user_id','=',$ user_id) - > get()'這會返回來自'post和評論表「只針對特定用戶 –

回答

7

您可以查詢關係。你最終會是這樣的:

$postsWithComments = $user->posts()->has('comments', '>=', 1)->get(); 

下面是從文檔的摘錄:http://laravel.com/docs/eloquent

查詢關係

當訪問記錄的模型,您可能希望限制您的基於存在關係的結果。例如,您希望獲取至少有一條評論的所有博客文章。要做到這一點,你可以使用有方法:

檢查關係時,選擇

$posts = Post::has('comments')->get(); 

你也可以指定運營商和計數:

$posts = Post::has('comments', '>=', 3)->get(); 
+0

OP想要過濾帖子,所以他只獲得由特定用戶發表的評論。 – ciruvan

+0

這應該做什麼然後。 –

+0

現在看起來好多了。先生,祝我早日康復。 – ciruvan