Symfony2类不是有效实体或映射超类

时间:2014-09-29 08:16:43

标签: php symfony orm doctrine

我是symfony2的新手,并尝试在neatbeans中执行命令

console doctrine:generate:entities /backend/storeBundle/Entity/RolClass

它显示错误:

[Doctrine\ORM\Mapping\MappingException]
Class "\backend\storeBundle\Entity\RolClass" is not a valid entity or 
mapped super class.                                                               

班级:

<?php
namespace backend\storeBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
 * @ORM\Entity
* @ORM\Table(name="nomrol")
*/
  class RolClass {
/**
 * @ORM\Column(type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;
/**
 * @ORM\Column(type="string",length=100)
 */
protected $namerolcust;
}

在此页面中搜索信息我尝试修改app / config.yml:

orm:
    auto_generate_proxy_classes: "%kernel.debug%"
    default_entity_manager: default
    entity_managers:
        default:
            mappings:
                backendstoreBundle: ~

1 个答案:

答案 0 :(得分:2)

首先在你的班级名称中使用CLass是不好的做法,请删除;)

1)执行上述操作然后重新运行

2)如果仍然失败,那么由于某种原因然后将config.yml改为

     orm:
         auto_generate_proxy_classes: "%kernel.debug%"
         auto_mapping: true

现在如果由于一些奇怪的原因而失败,那么你的学说正在寻找一个超类,所以你必须做以下事情。

定义基类:

/**
 * @ORM\MappedSuperclass
 */
abstract class BaseRol
{
    // base rol
}

然后扩展您的课程

/**
 * @ORM\Entity
 */
class Rol extends Baserol
{
    // rol
}

因为您在基类上缺少@MappedSuperclass注释,所以Doctrine会抛出您提到的异常。