我在Zend框架中使用了Doctrine 2 XML映射,现在发现在Symfony 2中很难理解。
问题是,为了使用FOS \ UserBundle,我的用户实体必须扩展FOS \ UserBundle类。但是由于我使用Doctrine XML映射,所有实体都是自动生成的,这意味着每次更新实体时我都必须手动更改我的用户实体代码。
我尝试使用继承映射,但它不起作用:
即使你在你的指定中指定了继承选项 XML或YAML映射文件,生成器无法生成基础和 正确的子类,因为它不知道哪个 class应该扩展哪个。你必须调整实体 手动代码继承工作!
那么,它是什么意思,我必须手动创建用户实体及其所有的设置者和获取者?
这是我的User.orm.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<mapped-superclass name="FOS\UserBundle\Model\User">
<entity name="Nt\UserBundle\Entity\User" table="users">
<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>
<field name="email" type="string" />
<field name="firstName" type="string" column="first_name"/>
<field name="surname" type="string"/>
<field name="password" type="string"/>
<field name="salt" type="string"/>
</entity>
</mapped-superclass>
</doctrine-mapping>