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

标签 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` = $password and `email` = $username or `username` = $username

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

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

所以我的问题是如何在我的 Laravel 查询中使用括号?

有人帮忙吗?

最佳答案

您将需要使用分组。更多请阅读:Parameter Grouping (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);
});

关于php - 如何在 Laravel SQL 原始查询中使用括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48161433/

相关文章:

php - 将英文数字转换为阿拉伯数字

javascript - 只是将 XML/JSON 存储在数据库中以用于数据库中未使用的数据?

PHP:我应该同时使用 MYSQLI_CLIENT_COMPRESS 和 MYSQL_CLIENT_SSL 标志吗?

java - 我需要规范化这个 MySQL 数据库吗?

PHP 服务器在本应报告错误时超时

php - Laravel 5.2 中的多图像上传

PHP var_dump($_SESSION);

php - 在codeigniter中执行SQL查询

php - 如何从要在 iOS 应用程序中捕获的 php Web 服务获取 json bool 响应

html - pdf 中的 CSS 网格/flex