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

标签 eloquent laravel-5

我有两个表 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/

相关文章:

php - 如何使用 laravel 5.8 在 Controller 中创建一个条件?

php - 从 Laravel 5.1 中的通用数据库查询获取 Eloquent 模型的实例

laravel-5 - 如何在 laravel 项目中运行 FFMPEG

php - Laravel 关系结构

php - 我们可以将 Laravel 项目作为库集成到 CodeIgniter 中吗?

php - 如何在 Laravel 中使用带有 LIKE 和 whereIn 的数组来检索 Eloquent 行

php - 如何仅在 LIKE 查询 Laravel 中找到整个单词?

MySQL 到 Eloquent 查询

php - 拉维尔 5 : Use 301 instead of 302

laravel - 防止 View 中的延迟加载