Symfony / Doctrine: класс не является допустимым сущностью или суперклассифицированным классом

Я получаю «Класс PriceOrQuality \ POQBundle \ Entity \ Tag» не является допустимой сущностью или сопоставленной ошибкой суперкласса. Я проверял все ответы на подобные вопросы, но я не могу понять проблему.

Ошибка моего класса репозитория

<?php namespace PriceOrQuality\POQBundle\Entity\Repository; use Doctrine\ORM\EntityRepository as ER; use PriceOrQuality\POQBundle\Entity\Tag; use Doctrine\ORM\EntityManager; /** * EntityTagsRepository * */ class EntityTagsRepository extends ER { public function getTagsForTagCloud($entity_ids = null, $tag_id = null) { $em = $this->getEntityManager(); $qb = $em->createQueryBuilder(); $qb->select(array('IDENTITY(et.tag) as id, COUNT(et.tag) as tag_id_count, LOWER(t.tag) as tag')); $qb->from('PriceOrQuality\POQBundle\Entity\EntityTag', 'et'); $qb->leftjoin('PriceOrQuality\POQBundle\Entity\Tag','t', 'WITH', 'et.tag = t.id'); $qb->groupBy('et.tag'); $qb->addOrderBy('tag_id_count','DESC'); $qb->setMaxResults(20); return $qb->getQuery() ->getResult(); } } 

Класс Tag определен в этом файле (Tag.php) (только для определения):

 <?php namespace PriceOrQuality\POQBundle\Entity; // src/PriceOrQuality/POQBundle/Entity/Tag.php use Doctrine\ORM\Mapping as ORM; use Doctrine\Common\Collections\ArrayCollection; use PriceOrQuality\POQBundle\Entity\EntityTag; use PriceOrQuality\POQBundle\Entity\User; use JMS\SerializerBundle\Serializer\Serializer; /** * @ORM\Entity(repositoryClass="PriceOrQuality\POQBundle\Entity\Repository\TagsRepository") * @ORM\Table(name="tags") * @ORM\HasLifecycleCallbacks */ 

Есть ли у любого из вас умные парни какие-либо идеи о том, с чего начать с отладки?

Заранее спасибо,

руна

Нашел вопрос.

У меня было // @ todo после определения мета и до определения класса. По-видимому, это исказило отображение, поскольку оно не было отображено в доктрине.

Перемещение // @ todo и повторное отображение отображения устранили проблему.

Для тех, кто находит этот вопрос с похожими проблемами, попробуйте запустить:

 php app/console doctrine:mapping:info 

Он покажет вам, есть ли у вас проблемы в структуре отображения в доктрине

Спасибо за ваше время, ребята.

Привет, Руна

Прочтите немного на построителе запросов. Это проще и отличается от SQL-запроса. Нет необходимости в условиях соединения.

Это (для начала):

 $qb->leftjoin('PriceOrQuality\POQBundle\Entity\Tag','t', 'WITH', 'et.tag = t.id'); 

Должно быть просто:

 $qb->leftJoin('et.tag','t'); 

Там может быть больше проблем, но это поможет вам начать. http://docs.doctrine-project.org/en/latest/reference/query-builder.html