Php 如何在Laravel SQL原始查询中使用括号

Php 如何在Laravel SQL原始查询中使用括号,php,mysql,laravel,laravel-5.3,Php,Mysql,Laravel,Laravel 5.3,我想建立一个查询,用户需要正确的用户名或电子邮件和密码才能登录 这是我的Laravel查询代码 $query = Adminuser::where('password',$password); $query->orWhere('email',$username); $query->where('username',$username); 通过使用它,我得到了原始SQL查询,如 select * from `adminuser` where `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查询中使用括号


有人帮忙吗?

您需要使用分组。请阅读更多:()

您的查询应该是这样的(未测试):

编辑:


您可以向其中添加密码部分,但查询是无效的correct@DhavalChheda谢谢你指出错误。我已经编辑了我的答案。优雅的用户。。。这里告诉我‘未定义变量:密码’……但我已经定义了@阿拉法特:我知道你需要在查询中使用参数分组来实现你的目标。为了解决诸如您看到的hwat之类的其他问题,您需要到处玩。@Grateful user…终于可以工作了!!更新后的代码需要稍加修改。我已经更改了它…非常感谢兄弟:)每当在查询函数中使用变量时,他们称之为“未定义变量”。使用您的查询,我在您的答案中得到了“undefined variable:password”@pravin Daphi 1+($username)。泰
Model::where(function ($query) use ($password) {
    $query->where('password',$password);
})->where(function ($query) use (email, $password){
    $query->where('email',$email)
          ->orWhere('username',$username);
});
$query = Adminuser::where('password',$password)->where(function($query) use ($username){
$query->orWhere(['email' => $username, 'username' => $username])
})->first();