基本上我正在尝试执行以下查询。
Volunteer::with('user')
->where('fname', 'like', '%' . Input::get('search') . '%')
->orWhere('lname', 'like', '%' . Input::get('search') . '%')
->orWhere('users.email', 'like', '%' . Input::get('search') . '%') //error
->orWhere('phone', 'like', '%' . Input::get('search') . '%')
->orderBy('fname')
->paginate($limit);
第二个onWhere
子句引发column not found
错误。
志愿者和用户表是相关的。
如上所示查询志愿者表时,如何使用users表中的电子邮件列。
请帮忙。任何解决方法?
答案 0 :(得分:4)
您要做的是query the relationship。对于这个例子,可以像这样完成:
Volunteer::with('user')
->where('fname', 'like', '%' . Input::get('search') . '%')
->orWhere('lname', 'like', '%' . Input::get('search') . '%')
->orWhereHas('user', function($query){
$query->where('email', 'like', '%' . Input::get('search') . '%');
})
->orWhere('phone', 'like', '%' . Input::get('search') . '%')
->orderBy('fname')
->paginate($limit);