Можно ли установить ассоциацию в Doctrine2 без целевого объекта? - PullRequest
4 голосов
/ 06 января 2012

Существует определенная ассоциация ManyToOne между объектами Pattern и Category (Шаблон является стороной-владельцем отношения).Категория имеет много шаблонов, шаблон принадлежит одной категории.Итак, есть поле Pattern.category с @ManyToOne аннотацией доктрины.

Теперь в моем сценарии у меня есть id объекта Category (отправлено из формы), который я хочу присвоить полю Pattern.category вновь созданного Pattern (который будет сохранен), но я не хочу загружать эту сущность Category - она ​​мне не нужна, я просто хочу создать сущность Pattern, назначить ее категории (которая у меня есть) и сохранить ее.Мне кажется странным, что я должен загрузить объект Category только для того, чтобы установить соединение, когда все, что мне действительно нужно, это просто идентификатор, который у меня уже есть.

Возможно, это пахнет использованием концепций реляционных баз данных с ORM, но кажется совершенно бессмысленным загружать эту сущность только для установления соединения, когда я знаю идентификатор этой целевой сущности.

Я новичок вДоктрина между прочим.

1 Ответ

8 голосов
/ 06 января 2012

Вы можете использовать Ссылочный прокси :

$category = $em->getReference('Category', $id);
$pattern->setCategory($category);
...