如何在 laravel 5 的括号内组合查询条件


How to combile query conditions inside bracket in laravel 5

在 laravel 5 中,我使用以下查询生成器

$user_social = DB::table('users')
        ->where('email','=',$credentials['email'])
        ->where('facebook', '!=', '')
        ->orWhere('google', '!=', '')
        ->get(['facebook','google']);

我正在收到这个查询,由查询生成器生成

"select * from `users` where `email` = ? and `facebook` != ? or `google` != ?"

需要进行哪些更改才能进行这样的查询。

"select * from `users` where `email` = ? and (`facebook` != ? or `google` != ?")

感谢您的帮助。

我会尝试这样的事情:

$user_social = DB::table('users')
        ->where('email', '=', $credentials['email'])
        ->orWhere(function($query)
        {
            $query->where('facebook', '!=', '')
                  ->where('google', '!=', '');
        })
        ->get(['facebook','google']);

这将生成如下所示的查询

select * from users where email = 'email' or (facebook != '' and google != '')