我想使用FOSUserBundle添加地址和电话号码。如何使用FOSuserBundle添加自定义字段,以获得包含地址和电话号码的配置文件....
答案 0 :(得分:2)
创建一个自己的用户包,并在MyCompanyUserBundle.php中设置
public function getParent(){
return 'FOSUserBundle';
}
然后在您的新UserBundle中创建一个User实体,让它从FOS用户包的基本用户扩展:
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="user")
*/
class User extends BaseUser
{
public function __toString(){
return $this->firstname . ' ' . $this->lastname . ' (' . $this->email . ')';
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
}
修改强>
同样在配置中设置用户:
fos_user:
db_driver: orm
firewall_name: main
user_class: MyCompany\UserBundle\Entity\User
答案 1 :(得分:2)
问题在于: 当我按照symfony文档:https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.md在步骤a)Doctrine ORM User类 我创建了一个文件夹doctrine包含User.orm.yml:
的Acme \ UserBundle \实体\用户: 类型:实体 table:fos_user ID: ID: 类型:整数 发电机: 策略:自动
此文件会破坏您实体中的任何更新并更新您的数据库shemea。解决方案是删除此文件夹。
答案 2 :(得分:0)
您不必添加自定义字段,但必须创建自己的用户模型。
阅读文档,所有内容都解释如下: https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.md#step-3-create-your-user-class