doctrine:schema:generate 生成空转储

doctrine:schema:generate produces empty dump

我正在创建一个包,到目前为止,我试图将实体与 ORM 分开。

到目前为止,我所做的是为管理人员创建足够的服务,并且效果很好。

但我遇到了一个问题:在 NS\TestBundle\Model 中,我创建了抽象模型 类,它使用 XML 文件映射为 mapped-超类.

然后,我在 NS\TestBundle\Entity 中创建了一些继承这些模型的实体。

在我想将我的模型与数据库同步之前,它工作正常。

app/console doctrine:schema:create --dump-sql

只生成 ;.

我做错了什么?

默认情况下,学说不会查找模型目录。在 bundle 构建方法中,您需要指定自定义映射。

//src/NS/TestBundle/NSTestBundle.php
public function build(ContainerBuilder $container)
{
    $mappings = array(
            realpath(__DIR__ . '/Resources/config/doctrine/model') => 'NS\TestBundle\Model',
        );

    $container->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($mappings));
}

然后您的映射超类将被正确解释

这是我的耻辱:主超类根本不能被丢弃,因为它们的目的是被继承。

创建您自己的实体(并确保它们在超类之后继承)然后一切都会正常运行。