我刚刚在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 回答
不要忘记构造函数,清除缓存并尝试
php app/console doctrine:schema:update --force
需要将MyUserBundle映射添加到config.yml文件中: