Php FOSUserBundle不应用用户实体更改

Php FOSUserBundle不应用用户实体更改,php,symfony,fosuserbundle,Php,Symfony,Fosuserbundle,我刚刚在Symfony 2.3.3版应用程序中安装了FosUserBundle。 我可以管理用户、登录、注册等,但在运行应用程序/控制台条令:模式:更新时,我对MyApp\UserBundle\Entity中的用户类所做的更改未被应用 数据库结构包含: 身份证件 用户名, 用户名(u canonical), 电子邮件, 电子邮件(u canonical),, 启用, 盐, 密码, 上次登录时, 锁定, 期满, 在, 确认令牌, 密码\u请求\u位于, 角色, 证书已过期, 凭据在过期 无论我做什

我刚刚在Symfony 2.3.3版应用程序中安装了FosUserBundle。 我可以管理用户、登录、注册等,但在运行应用程序/控制台条令:模式:更新时,我对MyApp\UserBundle\Entity中的用户类所做的更改未被应用

数据库结构包含: 身份证件 用户名, 用户名(u canonical), 电子邮件, 电子邮件(u canonical),, 启用, 盐, 密码, 上次登录时, 锁定, 期满, 在, 确认令牌, 密码\u请求\u位于, 角色, 证书已过期, 凭据在过期

无论我做什么,我添加的字段rate都不会在数据库结构中创建

Inside/app/AppKernel.php

        new MyApp\UserBundle\MyAppUserBundle(),
        new FOS\UserBundle\FOSUserBundle(),
Inside/app/config/config.yml

fos_user:
    db_driver: orm
    firewall_name: main
    user_class: MyApp\UserBundle\Entity\User
    registration:
        confirmation:
            enabled:    true
和内部/src/MyApp/UserBundle/Entity/User.php

<?php

namespace MyApp\UserBundle\Entity;

use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
 * User
 *
 * @ORM\Table(name="fos_user")
 * @ORM\Entity(repositoryClass="MyApp\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="token", type="string", length=255)
     */
    private $token;

    /**
     * @var integer
     *
     * @ORM\Column(name="rate", type="integer")
     */
    private $rate;


    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set token
     *
     * @param string $token
     * @return User
     */
    public function setToken($token)
    {
        $this->token = $token;

        return $this;
    }

    /**
     * Get token
     *
     * @return string 
     */
    public function getToken()
    {
        return $this->token;
    }

    /**
     * Set rate
     *
     * @param integer $rate
     * @return User
     */
    public function setRate($rate)
    {
        $this->rate = $rate;

        return $this;
    }

    /**
     * Get rate
     *
     * @return integer 
     */
    public function getRate()
    {
        return $this->rate;
    }
}

不要忘记构造函数,清除缓存并尝试
php应用程序/控制台原则:schema:update--force

名称空间Acme\UserBundle\Entity

使用FOS\UserBundle\Model\User作为基本用户;使用条令\ORM\Mapping作为 ORM

/***@ORM\Entity*@ORM\Table(name=“fos\u user”)/class user 扩展BaseUser{ /* *@ORM\Id *@ORM\Column(type=“integer”) *@ORM\GeneratedValue(strategy=“AUTO”) */ 受保护的$id

public function __construct()
{
    parent::__construct();
    // your own logic
}
}


需要将MyUserBundle映射添加到config.yml文件:

doctrine: 
    orm:
           mappings:
                FOSUserBundle: ~
                MyUserBundle: ~

php应用程序/控制台条令:模式:更新——转储sql
?无需更新-您的数据库已与当前实体元数据同步。您是否更新了
/src/MyApp/UserBundle/resources/doctrine/user.orm中的实际映射。无论您的新字段是什么?
,我也会参考文档:,更新到最新版本的FOSUserBundle为我解决了这个问题。我已经添加了这些映射,仍然没有添加字段ID。您实际上必须将MyUserBundle添加到映射中,还是已经在映射中?MyUserBundle是否有其他使用yaml或xml映射的实体?无法在捆绑包中混合使用注释/yml/xml。那么令牌呢?它被映射了吗?已经添加了构造函数,仍然没有运气。