【问题标题】:Symfony2 Class is not a valid entity or mapped super classSymfony2 类不是有效的实体或映射的超类
【发布时间】:2014-09-29 08:16:42
【问题描述】:

我是 symfony2 的新手,正在尝试在 netbeans 中执行命令

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: ~

【问题讨论】:

    标签: php symfony orm doctrine


    【解决方案1】:

    首先在你的类名中使用 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 会抛出您提到的异常。

    【讨论】:

    • 我将错误更改为[Doctrine\ORM\Mapping\MappingException] Class "\backend\entityBundle\Entity\Rolname" sub class of "backend\entityBundle\Entity\Baseent" is not a valid entity or mapped super class.
    • 好吧,这真的很奇怪,因为您刚刚开始删除这两个实体。让我们重新开始(有时是最好的选择)。问题可能是 netbeans 让我们试试终端,您使用的是 MAC、Windows 还是虚拟机,例如 UBUNTU?
    • 我使用的是 Windows 7。而且我又重复了 5 次以上。
    • 好吧,打开你的终端,运行以下命令。 cd toYourDocumentfolder ////// php app/console dictionary:generate:entity 填写并完成接下来会发生什么?
    • 我看到这是来自 netbeans 的错误。如果你在命令行中执行它就可以了。谢谢
    猜你喜欢
    • 2013-02-05
    • 2018-06-06
    • 2016-01-20
    • 1970-01-01
    • 2013-02-12
    • 2014-02-21
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多