我收到了“Class PriceOrQuality\POQBundle\Entity\Tag 不是有效实体或映射的父类(super class)错误。我已经检查了类似问题的所有答案,但我似乎无法理解这个问题。
错误是由我的存储库类引发的
<?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
*/
有没有聪明人知道从哪里开始调试?
提前致谢,
rune
最佳答案
发现问题。
我在元定义之后和类定义之前有一个//@todo 。显然,这搞砸了映射,因为它没有在学说中映射。
移动//@todo 并重新运行映射修复了问题。
对于发现此问题具有类似问题的人,请尝试运行:
php app/console doctrine:mapping:info
它会告诉你你在学说中的映射结构是否有问题
谢谢你们的时间。
干杯,
rune
关于php - Symfony/学说 : Class is not a valid entity or mapped super class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17765591/