在Laravel中查询两级相关数据

时间:2016-06-04 21:51:18

标签: php laravel orm laravel-5 eloquent

我有一个Payment和一个TransactionsGroup模型。它们通过BelongsToMany关系相关。

TransactionGroup还与通过HasMany进行的交易相关。

我想获得付款和相关交易。我如何使用Eloquent做到这一点?我到目前为止:

    $payments = Payment::with('transactionGroups')->findOrFail($paymentId);

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码加载嵌套关系:

$payments = Payment::with('transactionGroups', 'transactionGroups.transactions')->findOrFail($paymentId);

Eloquent将为给定的付款加载 transactionGroups ,然后对于每个付款,它将加载相关的交易。您可以稍后通过以下方式访问它们:

foreach ($payment->transactionGroups as $transactionGroup) {
  foreach ($transactionGroup->transactions as $transaction) {
    // your code here
  }
}