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']);