在我的用户表中,我想获取管理员用户和其他已激活的用户。 实际上,我想要的结果是这两个查询结果的串联:
User::where('user_name','admin')->first();
User::where('is_active',1)->get();
有什么方法可以在一个查询中获得此结果吗?
答案 0 :(得分:2)
$query = User::where('is_active',1)->where('user_name','admin')->first();
以上查询将仅向您提供一个活动用户,其user_name是admin并且是活动的。
根据我对您的问题的理解,您希望所有处于“活动状态”且user_name为“ admin”的用户,然后在下面的查询中进行尝试。
$query = User::where('is_active',1)->orWhere('user_name','admin')->get();
希望这可以解决您的问题。
答案 1 :(得分:1)
您需要使用并集将两个结果集放在一起。
$first = User::where('user_name','admin')->first();
$users = User::where('is_active',1)->union($first)->get();
那应该使您成为第一个Admin用户和所有活动用户。
实际上,因为它们在同一张表上,所以OR也应如下所示工作:
$users = User::where('is_active',1)
->orWhere('user_name', 'admin')
->get();
我将保留两个部分,因为它们都可以工作。
答案 2 :(得分:1)
尝试一下
User::where('is_active',1)
->orWhere('user_name', 'admin')
->get();
答案 3 :(得分:1)
您应该尝试以下操作:
$rsltUser = User::where('is_active',1)
->orWhere('user_name', 'admin')
->get();
答案 4 :(得分:1)
很抱歉收到的回复太晚,每个人都错过了laravel
开箱即用的method which accepts array
Eloquent Version
User::where(['user_name' => 'admin','is_active' => '1'])->first();
另一种方法
DB Facade Version
DB::table('users')->where(['user_name' => 'admin','is_active' => '1'])->first();
希望有帮助