2

当我正在创建一个将用于研究健康领域患者的 Web 应用程序时,我希望我的所有用户都是完全匿名的。我能否以一种简单的方式摆脱 email 和 email_canonical 字段而不重写捆绑包本身的内容,例如通过在我自己的捆绑包中对我的用户类做一些事情?

编辑:我这样做了:

/**

*   @ORM\Column(nullable=true)

**/

protected $email;



/**

*   @ORM\Column(nullable=true)

**/

protected $emailCanonical; 

在我的用户实体类中。但是当我做 php app/console 学说:schema:update --force 我得到

[Doctrine\ORM\Mapping\MappingException] 在字段或鉴别器列映射中
实体 'Pan100\MoodLogBundle\Enti ty\User' 上的列 'email' 的重复定义。

编辑2:忘了说这是在将FOUserBundle的模型类User扩展为BaseUser的类中完成的......

4

1 回答 1

10

好的!

我做了:

...
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
* @ORM\AttributeOverrides({
*              @ORM\AttributeOverride(name="email", column=@ORM\Column(nullable=true)),
*              @ORM\AttributeOverride(name="emailCanonical", column=@ORM\Column(nullable=true, unique=false))
*  
* })  
*/

class User extends BaseUser
{

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */

    protected $id;
...(code emitted)

稍后我会发现是否需要更多 - 我可能必须重写一些 FOSUserBundle 方法来创建用户。至少“php app/console fos:user:create testuser”命令需要一个电子邮件......但它不再必须是唯一的,所以如果我以后受到阻碍,我可以添加字符串“none”或其他东西。 ..

于 2013-03-01T18:12:00.080 回答