我正在尝试使用laravel使用以下查询搜索为特定课程注册的所有用户。
$users = DB::table('users')
->leftJoin('registrationrequests', 'users.id', '=', 'registrationrequests.user_id')
->where('firstname', 'LIKE', "%$search%")
->orWhere('lastname', 'LIKE', "%$search%")
->orWhere('username', 'LIKE', "%$search%")
->where('registrationrequests.course_id', $course_id)
->where('registrationrequests.registered', 1)
->get();
在表格registrationrequests
中,我有course_id
,user_id
和registered
(二进制值)的列。 course_id
和user_id
是各个表的外键。
我正在获得一组输出。但它没有检查条件where('registrationrequests.course_id', $course_id)
可能是什么原因?
答案 0 :(得分:1)
使用http://laravel.com/docs/4.2/queries#advanced-wheres和https://stackoverflow.com/a/18660266/689579您的查询看起来像 -
$users = DB::table('users')
->leftJoin('registrationrequests', 'users.id', '=', 'registrationrequests.user_id')
->where('registrationrequests.course_id', $course_id)
->where('registrationrequests.registered', 1)
->where(function($users) use($search){
$users->where('firstname', 'LIKE', "%$search%")
->orWhere('lastname', 'LIKE', "%$search%")
->orWhere('username', 'LIKE', "%$search%")
})
->get();