В 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 != '')
Других решений пока нет …