У меня возникли проблемы с использованием withTrashed() при использовании многоточечной нотации глубины.
Все работает хорошо, когда:
with(['trials.activity' => function ($q) { $q->withTrashed(); }])->
дд() возвращает:
#relations: array:1 [▼
"activity" => Activity {#1139 ▶}
]
Однако при добавлении нотации с множественной глубиной отношения удаленной строки не отображаются, например:
with(['trials.activity.goalcategories.goals.scoretype' => function ($q) { $q->withTrashed(); }])->
дд() возвращает:
#relations: array:1 [▼
"activity" => null
]
У действия есть удаленная строка, но было бы хорошо включить отношения, если строки также удаляются в точечной нотации, если это возможно.
Есть ли способ заставить его работать с закрытием или есть какая-то работа?
@JonasStaudenmeir Э-э, это было не очень описательно, я отредактировал вопрос и добавил несколько выдержек из ответов dd. Спасибо.
В каком отношении были удалены строки?
@TravisBritz отношения активности имеют удаленные строки.






В настоящее время вы применяете withTrashed() к отношениям scoretype.
Используйте это вместо этого:
->with(['trials.activity' => function ($q) {
$q->withTrashed();
}, 'trials.activity.goalcategories.goals.scoretype']);
Обратный вызов выполняется последним в списке отношений, поэтому вам нужно разбить его посередине:
->with(['trials.activity' => function ($q) {
$q->withTrashed()
->with(['goalcategories.goals.scoretype']);
}])
Спасибо, что нашли время, чтобы ответить, сработало отлично. Я должен был дать ответ Йонасу, поскольку он ответил несколькими минутами ранее. Тем не менее, я ценю ваше время, спасибо.
@greebo3 нет проблем! Однако между нашими ответами есть разница, поэтому вы можете перепроверить, что в их ответах также есть все данные, которые вы ожидали. Я не уверен на 100% в поведении, когда два разных отношения объединяются так, как продемонстрировал Джонас, поэтому я включил еще один ответ.
Что значит "не работает"?