Laravel Eloquent многоточечная запись с использованием withTrashed (), возвращающая нулевые отношения - PullRequest
0 голосов
/ 10 февраля 2019

У меня проблемы с использованием 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 голосов
/ 10 февраля 2019

Обратный вызов выполняется последним в списке отношений, поэтому вам нужно разбить его по середине:

->with(['trials.activity' => function ($q) {
        $q->withTrashed()
          ->with(['goalcategories.goals.scoretype']);
}])
0 голосов
/ 10 февраля 2019

В настоящее время вы применяете withTrashed() к отношению scoretype.

Используйте это вместо:

->with(['trials.activity' => function ($q) {
    $q->withTrashed();
}, 'trials.activity.goalcategories.goals.scoretype']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...