Laravel使用withTrashed()雄辩的多深度点表示法返回空关系

时间:2019-02-10 19:23:59

标签: laravel eloquent

使用多深度点表示法时,在使用withTrashed()时遇到问题。

在以下情况下一切正常:

with(['trials.activity' => function ($q) { $q->withTrashed(); }])->

dd()返回:

#relations: array:1 [▼
    "activity" => Activity {#1139 ▶}
  ]



但是,当添加多深度符号时,被删除的行的关系不会出现,例如:

with(['trials.activity.goalcategories.goals.scoretype' => function ($q) { $q->withTrashed(); }])->

dd()返回:

#relations: array:1 [▼
    "activity" => null
  ]

该活动具有已删除的行,但是如果可能的话,如果行也以点符号的深度删除,则最好包括这些关系。

有没有办法使它与闭包一起工作,还是有一些解决方法?

2 个答案:

答案 0 :(得分:0)

您当前正在将b应用于withTrashed()关系。

改为使用此:

scoretype

答案 1 :(得分:0)

回调在关系列表中的最后一个上运行,因此您需要在中间将其分解:

->with(['trials.activity' => function ($q) {
        $q->withTrashed()
          ->with(['goalcategories.goals.scoretype']);
}])