我有两个表 user 和 user_info。我需要加入这些表并必须从中搜索数据。它抛出未知列错误。我有使用数据库查询的解决方案,是否可以使用 Controller 中的 with() 方法和模型中的 Eloquent 关系进行搜索。
谢谢
最佳答案
无法使用 with() 按相关模型属性过滤模型 - 此方法仅允许过滤相关模型,而不允许过滤您正在加载的原始模型。
为了按相关模型的属性进行过滤,您应该使用 whereHas() 方法,例如为了加载 user_info 数据中 country 列设置为 uk 的所有用户,您可以执行以下操作:
$usersFromUK = User::with('user_info')->whereHas('user_info', function($query) {
$query->whereCountry('uk');
})->get();
关于eloquent - Laravel eloquent 使用 with() 方法连接多个表并搜索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38734632/