tldr;У меня есть коллекция сущностей Doctrine.Иногда я хочу загружать отношения.Иногда нет.Есть ли рекомендуемые настройки или шаблоны для этой ситуации?
Я переводил форму проекта Laravel, используя Eloquent в Doctrine.Пока я использовал Eloquent, мой код уровня домена обращался к репозиториям, а не манипулировал / сохранял объект напрямую.
Эти репозитории позволяли мне контролировать, какие отношения были загружены, а какие - нет.Причина в том, что иногда мне не нужно загружать эти отношения, так как они не используются.Действительно простой пример:
class Repository
{
public function getAll(): Collection
{
return EloquentModel::get();
}
public function getAllWithRelation(): Collection
{
$models = $this->getAll();
$models->load('relation');
return $models;
}
}
Я столкнулся с проблемой при использовании Doctrine.Я установил свои репозитории, чтобы получить коллекцию сущностей.Тем не менее, кажется, я не могу выбирать, когда загружать отношения на этих объектах.Я должен выбрать либо «нетерпеливый», либо «ленивый» в конфигурации объекта.
Есть ли рекомендуемый шаблон для решения этой проблемы?Или, может быть, есть способ загрузить коллекцию отношений сущностей из хранилища?