我正在创建一个捆绑包,到目前为止,他试图将实体与ORM分开。
到目前为止,我所做的是为经理人创造足够的服务,而且工作正常。
但是我正在努力解决这个问题:在NS\TestBundle\Model
中,我创建了抽象模型类,使用XML文件将其映射为 mapped-superclass 。
然后,我在NS\TestBundle\Entity
中创建了一些在这些模型之后继承的实体。
在我想将我的模型与数据库同步之前,它可以正常工作。
app/console doctrine:schema:create --dump-sql
只生成;
。
我做错了什么?
答案 0 :(得分:1)
这是我的遗憾:master-superclasses根本不能被抛弃,因为他们的目的是继承。
创建自己的实体(并确保它们在超类之后继承)然后一切都会正常运行。
答案 1 :(得分:0)
默认情况下,doctrine不会查找Model dir。在bundle build方法中,您需要指定自定义映射。
//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));
}
然后你的映射超类将被正确地插入