我正在與Post
和Tag
之間的關係使用laravel belongsToMany
。Laravel通過多個標籤獲取帖子
我想要做的是得到所有Post
s它有多個標籤。
我已經嘗試了各種雄辯的查詢,但我無法得到它。
目前我可以得到一個post_id
和tag_id
的數組,如下所示,但必須有一個更簡單的方法來做到這一點。
if (Request::has('tags')) {
$tags = Tag::find(explode(',', Request::get('tags')));
}else{
$tags = null;
}
// Get all posts tagged with the tags
$jobs = \DB::table('post_tag');
foreach ($tags as $tag) {
$posts = $posts->orwhere('tag_id', $tag->id);
}
dd($posts->get());
這轉儲有任何標識的所有帖子的數組,但我需要的post_id
S其中包含的所有tag_id
秒的陣列。
在此先感謝!
感謝您的意見。有關如何獲取包含'$ tags'中所有標籤的帖子的想法?您的想法非常適用於獲取至少有一個標籤的所有帖子。我是否應該遍歷每個'tag_id'並縮小查詢範圍?在這一點上,我只是想讓它工作,但我認爲有一個相對簡單的laravel方式來做到這一點。 –
是的,有一個很好的方法來做到這一點,whereHas'需要一些額外的參數來處理這件事,我會更新我的答案。 – user3158900
太棒了!非常感謝!您更新的答案正是我所需要的。我試圖儘可能遵循laravel標準,所以我正確地附加和同步標籤。再次感謝! –