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));
}
然后您的映射超类将被正确解释
这是我的耻辱:主超类根本不能被丢弃,因为它们的目的是被继承。
创建您自己的实体(并确保它们在超类之后继承)然后一切都会正常运行。
我正在创建一个包,到目前为止,我试图将实体与 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));
}
然后您的映射超类将被正确解释
这是我的耻辱:主超类根本不能被丢弃,因为它们的目的是被继承。
创建您自己的实体(并确保它们在超类之后继承)然后一切都会正常运行。