猿问

在 Laravel 中获取没有特定标签的帖子?

我知道如何获取所有带有特定标签的帖子。但是当我想做相反的事情时是行不通的。


我收到所有带有这样标签的帖子Laravel:


Post::whereHas('tags', function ($q) {

          return $q->where('name', 'Laravel');

      })->orderBy('created_at', 'desc')->take(12)->get();

现在我想获取所有没有标签Laravel的帖子。如果我这样做


Post::whereHas('tags', function ($q) {

          return $q->where('name', '!=','Laravel');

      })->orderBy('created_at', 'desc')->take(12)->get();

它正在返回所有帖子。它没有按预期工作。那么,如何获取所有没有标签的帖子Laravel。


料青山看我应如是
浏览 96回答 1
1回答

子衿沉夜

您可以使用whereDoesntHave$posts = Post::whereDoesntHave('tags', function ($query) {    $query->where('name', 'Laravel');})->orderBy('created_at', 'desc')->take(12)->get();有了这个,你只会得到那个tags没有名字的帖子Laravel。
随时随地看视频慕课网APP
我要回答