Правильное получение связанной модели в 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 шт):
В Cycle ORM v1 метод ORM::get(), в который передаются role и scope из Reference.
Автоматизировать этот процесс можно пакетом cycle/proxy-factory. Однако, в этом случае могут возникнуть проблемы с nullable связями (при раскрытии Proxy не сможет превратить себя в null).
В Cycle ORM v2 эти сложности устранены: достаточно использовать маппер по умолчанию и ленивые связи будут сами раскрываться при обращении к ним.