如何在laravelsql原始查询中使用括号

7kjnsjlb  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(356)

我想建立一个查询,其中一个用户需要他/她的正确答案 username 或者 email 以及 password 登录。
这是我的laravel查询代码

$query = Adminuser::where('password',$password);
$query->orWhere('email',$username);        
$query->where('username',$username);

通过使用这个,我得到了原始sql查询

select * from `adminuser` where `password` = $password and `email` = $username or `username` = $username

但是我需要原始的sql查询来获得正确的结果

select * from `adminuser` where `password` = $password and (`email` = $username or `username` = $username)

所以我的问题是如何在我的laravel查询中使用括号?
有人帮忙吗?

6l7fqoea

6l7fqoea1#

您需要使用分组。请阅读更多:参数分组(laravel 4.2)。
您的查询应该如下(未测试):
编辑:

Model::where(function ($query) use ($password) {
    $query->where('password',$password);
})->where(function ($query) use (email, $password){
    $query->where('email',$email)
          ->orWhere('username',$username);
});
vmjh9lq9

vmjh9lq92#

$query = Adminuser::where('password',$password)->where(function($query) use ($username){
$query->orWhere(['email' => $username, 'username' => $username])
})->first();

相关问题