Laravel Query Builder WHERE NOT IN具有多个WHERE子句

时间:2016-01-06 09:54:37

标签: php laravel laravel-5 eloquent

我有以下查询,

SELECT * FROM `users` WHERE approved='1' 
and users.id NOT IN (SELECT donations.user_id FROM donations where month='1' 
and year='2016');

我已关注Laravel Query Builder WHERE NOT IN 并转换我的查询,

$users = DB::table('users')->where('approved','=',1)->whereNotIn('id', function($q){
        $q->select('user_id')->from('donations')->where('month','=','$month')->where('year','=','$year');
        })->get();

但它没有用,任何人都可以帮我解决我犯错误的地方。 如何将其转换为Laravel查询构建器格式? 感谢。

1 个答案:

答案 0 :(得分:0)

您不应该将 $ month $ year 变量放在引号中。

替换

->where('month','=','$month')->where('year','=','$year')

->where('month','=',$month)->where('year','=',$year)