Правильное получение связанной модели в Cycle ORM

Возникла проблема: На проекте используется Cycle ORM,имеется 2 Entity. Я пытаюсь связать их с помощью аннотации так:

    /**
 * @Cycle\Relation\BelongsTo(target = "Company\Core\Entity\CourtInfo\CourtInfo")
 */
protected $court;

Но при обращении к $repository->findOne()->getCourt() я получаю:

object(Cycle\ORM\Promise\Reference)#2212 (2) {
["role":"Cycle\ORM\Promise\Reference":private]=>
string(42) "Company\Core\Entity\CourtInfo\CourtInfo"
["scope":"Cycle\ORM\Promise\Reference":private]=>
array(1) {
["id"]=>
int(15705)
  }
}

Но хочу получить Entity. Как мне это правильно сделать? Работает вариант, если добавить в параметры аннотации fetch="eager", но тогда будет грузиться жадно. Как мне лениво можно загрузить связанные сущности?


Ответы (1 шт):

Автор решения: Alex Rox

В Cycle ORM v1 метод ORM::get(), в который передаются role и scope из Reference.

Автоматизировать этот процесс можно пакетом cycle/proxy-factory. Однако, в этом случае могут возникнуть проблемы с nullable связями (при раскрытии Proxy не сможет превратить себя в null).

В Cycle ORM v2 эти сложности устранены: достаточно использовать маппер по умолчанию и ленивые связи будут сами раскрываться при обращении к ним.

→ Ссылка