Laravel在数据透视表上搜索多个值

时间:2015-09-21 12:34:04

标签: php laravel laravel-4 has-and-belongs-to-many

我试图搜索属于许多人的关系。

我有链接和链接标记,链接可以有很多链接标记。

所以我尝试做的是搜索两个标签,但我只希望它返回带有BOTH标签的链接。到目前为止,我有这个:

        $links = Link::whereHas('linktags', function($q) use($query, $where) {
            $q->whereIn('name', $query);
        })->with('linktags')->get();

这会搜索关系,并返回一个结果,但它会匹配任何标记,而不是它们的匹配。

我查看了文档,但我找不到这样做的方法。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我不完全确定你在$ query和$ where var中的内容,但根据4.2 docs你可以添加简单的" wheres"你的关闭,就像这样:

$links = Link::whereHas('linktags', function($q) use($query, $where, $tag1, $tag2) {
    $q->where('name', $tag1);
    $q->where('name', $tag2);
})->with('linktags')->get();