向wherehas添加额外查询

时间:2019-03-28 10:13:43

标签: laravel-5 laravel-nova

我正在选择与经过身份验证的用户属于同一组织的所有广播,这与->whereHas()完美搭配,但是如果我想添加一个过滤器以仅显示broadcasts,{{ 1}}是is_published

true

模型

public static function indexQuery(NovaRequest $request, $query)
{
    if (Auth::user()->isAdmin()) {
        return $query;
    }else{
        return $query->whereHas('organizations', function($q){
            $q->where('organization_id', Auth::user()->organization_id);
        });
    }
}

1 个答案:

答案 0 :(得分:2)

您可以将查询范围添加到Broadcast模型中,该查询范围将仅查询broadcastsis_published的{​​{1}}(这对于以后在您的应用程序中进行查询很有用需要发布的广播):

Broadcast.php (或模型文件)

true

然后在您的代码中,然后进入您查询的public scopePublished($query) { return $query->where('is_published', true); } 范围:

->published()