Для упрощения определены две сущности: Пользователь и Комментарий. Пользователь может публиковать много комментариев, и каждому комментарию назначается только один пользователь, поэтому объект «Комментарий» имеет:
/**
* @var \Frontuser
*
* @ORM\ManyToOne(targetEntity="Frontuser")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="ownerUserID", referencedColumnName="id")
* })
*/
private $owneruserid;
Однако в действии:
$orm = $this->getDoctrine()->getManager();
$repo = $orm->getRepository('CompDBBundle:Comment');
$repo->findBy(array('owneruserid' => $uid);
Произошла ошибка, что нет такого поля как owneruserid
.
Как я могу получить все комментарии пользователя? То же самое происходит с подобными отношениями в моей БД - похоже, вы не можете запустить find()
с внешними ключами в качестве параметров. Я считаю, что функция $user->getComments()
должна автоматически генерироваться/распознаваться Doctrine, чтобы обеспечить эффективный и быстрый доступ к связанным сущностям.
Пример простой, но что, если есть еще объекты, связанные с моим пользователем таким же образом? Должен ли я объявлять репозитории для каждого и пытаться получить их по его owneruserid
внешним ключам?