如何在现有查询中传递 Auth::user()?
How to pass the Auth::user() in the existing query?
我有一个查询,其中 select 是数据库中的一个列值,该值被传递给一个变量,该变量进一步传递给使用 compact
方法的视图。
查询如下:-
$activated_up = User::where(function($query) {
$query->where('activated_up', '=', '1')
->orWhere('activated_up', '=','0');
})
->get(['activated_up']);
它工作正常。但它只得到 activated_up
字段,所以如果数据库中只有一个用户,它就可以正常工作,但如果有多个用户,我需要考虑 Auth::user()
以区分和 select仅限当前用户,此现有查询不可能。
所以我尝试用 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']);
我有一个查询,其中 select 是数据库中的一个列值,该值被传递给一个变量,该变量进一步传递给使用 compact
方法的视图。
查询如下:-
$activated_up = User::where(function($query) {
$query->where('activated_up', '=', '1')
->orWhere('activated_up', '=','0');
})
->get(['activated_up']);
它工作正常。但它只得到 activated_up
字段,所以如果数据库中只有一个用户,它就可以正常工作,但如果有多个用户,我需要考虑 Auth::user()
以区分和 select仅限当前用户,此现有查询不可能。
所以我尝试用 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']);