【问题标题】:Laravel 5.5 - Nested query and model relationLaravel 5.5 - 嵌套查询和模型关系
【发布时间】:2018-02-20 08:23:34
【问题描述】:

我有 4 个模型。

  • 用户
  • 发货
  • 状态
  • 状态历史记录

User.php

public function shipments() {
   return $this->hasMany('App\Shipment', 'from_user_id');
}

Shipment.php

public function statuses() {
   return $this->hasMany('App\StatusHistory', 'model_id');
}

一个User 有很多Shipment。 一个Shipment 有许多StatusStatusHistory 的实例。

如何通过 Eloquent 关系获取 User 的所有 Shipment 值,它们在 StatusHistory 模型中具有特定的 id 值?

【问题讨论】:

  • 您的问题中没有足够的信息来编写实际查询。所以我建议在查询$user->shipments()->whereHas(...) 时使用whereHas
  • 我刚刚添加了更多信息。所以如果我有 $user->shipments,如何添加额外的查询呢?

标签: php laravel laravel-5 laravel-5.5


【解决方案1】:

你可以的

$user = User:find($id);
$shipments = $user->shipments()->whereHas('statuses', function ($query) {
    //Select all the shipments for this user where `StatusHistory` id is 1
    $query->where('id', 1);
})->get();

【讨论】:

    猜你喜欢
    • 2018-07-11
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 2023-02-20
    • 1970-01-01
    • 2020-04-14
    • 2019-01-23
    • 2014-01-18
    相关资源
    最近更新 更多