Laravel - 查询相关模型

时间:2014-09-24 17:13:57

标签: php laravel laravel-4 eloquent

基本上我正在尝试执行以下查询。

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表中的电子邮件列。

请帮忙。任何解决方法?

1 个答案:

答案 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);