Laravel eloquent使用with()方法连接多个表和搜索数据

时间:2016-08-03 04:49:52

标签: eloquent laravel-5.2

我有两个表用户和user_info。我需要加入这些表,并且必须从它们中搜索数据。它将错误作为未知列。我有使用数据库查询的解决方案,是否可以使用控制器中的with()方法和模型中的雄辩关系进行搜索。

谢谢

1 个答案:

答案 0 :(得分:3)

不可能使用 with()按照相关模型属性过滤模型 - 此方法仅允许过滤相关模型,而不是您正在加载的原始模型。

为了按相关模型的属性进行过滤,您应该使用 whereHas()方法,例如要在 user_info 数据中加载国家列设置为英国的所有用户,您可以执行以下操作:

$usersFromUK = User::with('user_info')->whereHas('user_info', function($query) {
  $query->whereCountry('uk');
})->get();