簡體   English   中英

如何在Laravel SQL原始查詢中使用括號

[英]how to use parenthesis in Laravel SQL raw query

我想構建一個查詢,其中用戶需要他/她正確的usernameemailpassword才能登錄。

這是我的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查詢中使用括號?

有人幫忙嗎?

您需要使用分組。 請閱讀更多: 參數分組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);
});
$query = Adminuser::where('password',$password)->where(function($query) use ($username){
$query->orWhere(['email' => $username, 'username' => $username])
})->first();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM