0

在 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` != ?")

谢谢你的帮助。

4

1 回答 1

0

我会尝试这样的事情

$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 != '')
于 2016-01-19T07:17:56.323 回答