[英]symfony2 how to override the User class with FosuserBundle?
我的问题很简单,但是我搜索了一个小时却没有成功,我想对UserEntity添加一些约束。 例如,我想限制用户名的长度
我认为最好的方法是不要接触供应商中的FOS。 我已经使用自己的layout.html等创建了自己的userBundle ...但是我无法覆盖FosuserBundle中已经存在的属性(它正在处理覆盖我的userBundle是FOS的子项的布局),有趣的是“ id”对于覆盖没有问题
我的用户实体:
<?php
namespace Diane\UserBundle\Entity;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* User
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Diane\UserBundle\Entity\UserRepository")
*/
class User extends BaseUser
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
* @ORM\Column(name="username", type="string", length=10)
*/
protected $username;
}
Fos用户模型:
<?php
namespace FOS\UserBundle\Model;
use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Collections\ArrayCollection;
abstract class User implements UserInterface, GroupableInterface
{
protected $id;
/**
* @var string
*/
protected $username;
...
}
我已经尝试删除:
/**
* @var string
*/
错误信息 :
[Doctrine \\ ORM \\ Mapping \\ MappingException]在字段“ Diane \\ UserBundle \\ Entity \\ User”上的字段“用户名”或鉴别符列映射中重复定义。
谢谢你给我的任何想法
尝试AttributeOverrides Doctrine
注释:
/**
* User
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Diane\UserBundle\Entity\UserRepository") / class User extends
*
* @ORM\AttributeOverrides({
* @ORM\AttributeOverride(name="username",
* column=@ORM\Column(
* name = "username",
* type = "string",
* length = 10
* )
* )
* })
*
*/
class User extends BaseUser
{
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.