Laravel 如何在现有查询中传递Auth::user()?

Laravel 如何在现有查询中传递Auth::user()?,laravel,laravel-5,eloquent,union,having,Laravel,Laravel 5,Eloquent,Union,Having,我有一个查询,它从数据库中选择一个列值,并将该值传递给一个变量,该变量通过compact方法进一步传递给一个视图 $activated_up = User::where(function($query) { $query->having('id_user', Auth::user()->id_user) ->where('activated_up', '=', '1') ->orWhere('activated_up', '

我有一个查询,它从数据库中选择一个列值,并将该值传递给一个变量,该变量通过
compact
方法进一步传递给一个视图

$activated_up = User::where(function($query) {
    $query->having('id_user', Auth::user()->id_user)
          ->where('activated_up', '=', '1')
          ->orWhere('activated_up', '=','0');

    })
    ->get(['activated_up']);
查询如下:-

$activated_up = User::where(function($query) {
    $query->where('activated_up', '=', '1')
          ->orWhere('activated_up', '=','0');

    })
    ->get(['activated_up']);
它工作得很好。但是它只得到了<代码> ActudioTypUP 字段,所以如果数据库中只有一个用户比它工作得好,但是如果有多个用户,那么我就需要考虑<代码> Auth::USER()/<代码>,以便只区分和选择当前无法使用现有查询的当前用户。 所以我试着用
having
方法更新它

$activated_up = User::where(function($query) {
    $query->having('id_user', Auth::user()->id_user)
          ->where('activated_up', '=', '1')
          ->orWhere('activated_up', '=','0');

    })
    ->get(['activated_up']);
但这是行不通的。我还尝试了
union
方法,如下所示:-

$id = User::where('id_user',Auth::user()->id_user)->first();
$activated_up = User::where(function($query) {
    $query->where('activated_up', '=', '1')
          ->orWhere('activated_up', '=','0');
          ->union($id);

    })
    ->get(['activated_up']);
但这也不起作用。不管怎样,我需要让它工作


需要进行哪些更改才能获得所需的结果?

您只需执行以下操作:

$activated_up = User::where('id_user',Auth::user()->id_user)
->where(function($query) {
$query->where('activated_up', '=', '1')
      ->orWhere('activated_up', '=','0');
})
->get(['activated_up']);