使用FOSUserBundle创建自定义字段

时间:2014-02-18 13:11:18

标签: symfony fosuserbundle

我想使用FOSUserBundle添加地址和电话号码。如何使用FOSuserBundle添加自定义字段,以获得包含地址和电话号码的配置文件....

3 个答案:

答案 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:

的src / Acme公司/ UserBundle /资源/配置/教义/ 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