Доктрина 2.1: Основное отображение аннотаций - PullRequest
1 голос
/ 06 марта 2012

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

Это довольно просто, но все, что я пишу, не работает!

Итак, у меня есть Category сущность и Site сущность. В одной категории должно быть много сайтов. Это действительно так. Как их сопоставить?

Я понимаю, что у меня должно быть поле sites в Category сущности в качестве отношения OneToMany и поле category в сущности Site как ManyToOne?

Самый простой код, который я пробовал, таков:

/**
 * @ORM\OneToMany(targetEntity="Site", mappedBy="category")
 */
protected $sites;

/**
 * @ORM\ManyToOne(targetEntity="Category")
 */
protected $category;

Это не выдает ошибку при вызове (в Symfony 2):

app/console doctrine:generate:entities TestSampleBundle\Entity\Category (or Site), но говорит:

Namespace "..." does not contain any mapped entities.

Я довольно новичок в Доктрине, поэтому, пожалуйста, не оскорбляйте, я согласен, что я не смогу понять примеры, и они могли бы прекрасно работать, но даже в этом случае мне нужен кто-то, чтобы объяснить это в 2 предложениях, поэтому Я бы знал, с чего начать. Мне никогда не удавалось заставить отображения работать.

Ответы [ 2 ]

0 голосов
/ 06 августа 2014

Убедитесь, что у вас нет другого формата объявлений доктрины (yml, xml, ...).

В моем случае в MyBundle был файл, ../Resources/doctrine/Users.orm.yml, из-за которого доктрина не читала аннотации к определениям сущностей.

Удаление этой папки, поскольку в ней не было необходимости, поскольку класс User был определен с помощью аннотаций, решило мою проблему.

0 голосов
/ 06 марта 2012

Посмотрев в свой каталог, я обнаружил, что у вас могут возникнуть проблемы с пространством имен:

Попробуйте заменить

namespace Tony\NachalotoBundle\Entity\Catalog;

с

namespace Tony\NachalotoBundle\Entity;

и обязательно поместите его в папку

src/Tony/NachalotoBundle/Entity

Как общий совет: всегда проверяйте, соответствует ли ваше пространство имен структуре папок и использованию в командах Symfony. Автозагрузчик работает хорошо только тогда, когда вы обращаете внимание на пространства имен!

...