SYMFONY2无元数据类要处理



用:

创建实体后
php app/console doctrine:generate:entity

使用:

php app/console doctrine:schema:update --force

我遇到了:

没有元数据类要处理。

实体

namespace ISLabAdminBundleEntity;
use DoctrineORMMapping as ORM;
/**
 * @ORMEntity
 * @ORMTable(name="menu_items")
 */
class MenuItem
{
    /**
     * @ORMColumn(name="id", type="integer")
     * @ORMId
     * @ORMGeneratedValue(strategy="AUTO")
     */
    private $id;
    /**
     * @ORMColumn(name="parent", type="integer")
     */
    private $parent;
    // ...
}

我有一个类似的问题,花了我一段时间,直到我知道如何清除缓存。仅清除学说的缓存对我不起作用。使用下面的命令清除整个环境(在这种情况下为生产)

php app/console cache:clear --env=prod

我通过命令行通过交互式生成器生成实体时也有相同的问题。当我第一次创建时,我将配置格式设置为 php ,但这无效。因此,我删除了它并再次尝试,但是这次我选择了格式=注释。然后它起作用了!也许这可以解决某人的问题。

,因此Entity Manager并未为您的实体创建元数据。这是我首先检查的事情:

  1. 清除您的缓存
  2. 确保您的AdminBundle在Appkernel中注册。
  3. 确保Entity Manager的自动化为true。或如果您使用自定义EM。
  4. 正确设置

有点偏离:

我看到您正在制作菜单系统,我强烈建议您查看学说扩展树,这应该使您可以比结构更有效地查询和编辑项目。

我更新数据库时也有同样的问题。因此,我遵循此解决方案,并试图适应我的案例,并且有效。我认为这确实是一个自动化的问题,即Auto_mapping设置为TRUE,Symfony无法找到该实体。我希望它能有所帮助。

  orm:
    auto_generate_proxy_classes: "%kernel.debug%"
    naming_strategy: doctrine.orm.naming_strategy.underscore
    auto_mapping: true
    mappings:
        AppBundle:
            type: annotation
            is_bundle: false
            dir: %kernel.root_dir%/../src/AppBundle/Entity/
            prefix: AppBundleEntity
            alias: AppBundle

对于同一件事的任何人,这些都是几个步骤:

1。清除缓存:

bin/console c:c --env=dev
bin/console c:c --env=prod

同时看到任何错误,请尝试通过检查问题来源来掩盖它。

2。检查您的配置:

根据此样品目录结构:

Application
|
└- src
   |
   └- Acme
      |
      └- Bundle
         |
         └- BlogBundle
            |
            └- Model
               |
               └- Entity

您应该在app/config/config.yml文件中具有此配置:

doctrine:
    ...
    orm:
        auto_generate_proxy_classes: '%kernel.debug%'
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true
        mappings:
            AcmeBlogBundle:
                mapping: true
                type: annotation
                dir: Model/Entity
                alias: Blog
                prefix: AcmeBundleBlogBundleModelEntity
                is_bundle: true

3。更新您的数据库架构:

您现在可以更新数据库架构而没有任何问题:

bin/console doctrine:schema:update

尽管这是大多数情况下的最后一步,但您仍然可以使用--verbose来找到任何可能的问题。

bin/console doctrine:schema:update --verbose

确保将您的实体放在捆绑包的Entity目录中。就我而言,它们代替了Entities

对我而言,从CMD中生成所有实体进行了工作。

在我的情况下,我解决了创建 entity 文件夹的问题。由于某种原因,它被消除了。我希望它能有所帮助。

我遇到了同样的问题。对我来说,我的目录称为"实体",不是在" AppBundle"中,而是在" SRC"目录中。将"实体"目录移动到" AppBundle"目录为我解决问题!

相关内容

  • 没有找到相关文章