首页 文章

FOSUserBundle未应用用户实体更改

提问于
浏览
0

我刚刚在Symfony 2.3.3版应用程序中安装了FosUserBundle . 我能够管理用户,登录,注册等等,但是当我运行app / console doctrine时,我在MyApp \ UserBundle \ Entity中对我的User类所做的更改未被应用:schema:update

数据库结构包含:id,username,username_canonical,email,email_canonical,enabled,salt,password,last_login,locked,expired,expires_at,confirmation_token,password_requested_at,roles,credentials_expired,credentials_expire_at

无论我做什么,我添加的字段,速率,都不是在数据库结构中创建的 .

在/app/AppKernel.php里面

new MyApp\UserBundle\MyAppUserBundle(),
        new FOS\UserBundle\FOSUserBundle(),

在/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;
    }
}

2 回答

  • 0

    不要忘记构造函数,清除缓存并尝试 php app/console doctrine:schema:update --force

    命名空间Acme \ UserBundle \ Entity;使用FOS \ UserBundle \ Model \ User作为BaseUser;使用Doctrine \ ORM \ Mapping作为ORM; / ** * @ORM \ Entity * @ORM \ Table(name =“fos_user”)/ class用户扩展BaseUser {/ * * @ORM \ Id * @ORM \ Column(type =“integer”)* @ORM \ GeneratedValue (strategy =“AUTO”)* / protected $ id;公共函数__construct()
    {
    父:: __构建体();
    //你自己的逻辑
    }
    }

  • 0

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

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

相关问题