【发布时间】:2016-01-22 01:21:05
【问题描述】:
在多对多关系中,找到属于一个元素的所有元素是非常困难的。但我不知道如何过滤多个。让我解释。 假设我们有一个标准的 Post 和 Tag 模型。他们是多对多的关系。要查找帖子的所有标签,我们会这样做:
Post::find(1)->tags()->get();
为了获得某个标签的所有帖子,我们会这样做
Tag::find(1)->posts()->get();
我想不通的是搜索所有包含 2、3 等标签的帖子。例如,如何找到所有带有标签“it”和“smartphone”的帖子,而不是只有“it”或只有“smartphone”的帖子。
我尝试了 whereHas,但它会返回和 OR'ed 类似 'it' 的帖子 || '手机'。我正在寻找的是 AND'ing 像 'it' && 'smartphone'。
【问题讨论】:
标签: laravel search filter many-to-many