Symfony / Doctrine:Class不是有效实体或映射超类

时间:2013-07-20 18:55:02

标签: php symfony

我得到的是“Class PriceOrQuality \ POQBundle \ Entity \ Tag不是一个有效的实体或映射的超类错误。我已经检查了类似问题的所有答案,但我似乎无法理解这个问题。” / p>

我的存储库类

引发了错误
<?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 
 */

你们这些聪明人都知道从哪里开始调试吗?

提前致谢,

符文

2 个答案:

答案 0 :(得分:11)

发现了这个问题。

我在元定义之后和类定义之前有一个// @ todo。显然这搞砸了映射,因为它没有在学说中映射。

移动// @ todo并重新运行映射修复了问题。

对于遇到类似问题的任何人,请尝试运行:

php app/console doctrine:mapping:info

如果您在doctrine

中的映射结构中遇到问题,它会告诉您

感谢您的时间。

干杯, 符文

答案 1 :(得分:0)

在查询构建器上阅读一下。它比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