我想扩展默认用户实体属性。在使用 SonataUserBunle 扩展 FOSUserBundle 后的数据库中,有 2 个表用于存储用户:fos_user
和fos_user_user
. 我想扩展fos_user
这里是app/AppKernel.php:
new Sonata\UserBundle\SonataUserBundle('FOSUserBundle'),
new Application\Sonata\UserBundle\ApplicationSonataUserBundle(),
在我设置的 app/config.yml 文件中:
fos_user:
db_driver: orm<br>
firewall_name: main<br>
user_class: Acme\DemoBundle\Entity\User<br>
group:<br>
group_class: Application\Sonata\UserBundle\Entity\Group<br>
sonata_user:
security_acl: true
class:
user: Acme\DemoBundle\Entity\User
admin:
user:
class: Acme\DemoBundle\Admin\UserAdmin
parameters:
sonata.user.admin.user.class: Blogger\BlogBundle\Admin\UserAdmin
sonata.user.admin.user.entity: Blogger\BlogBundle\Entity\User
doctrine:
orm:
auto_mapping: auto
SonataUserBundle 是在中创建的src/Application/Sonata/UserBundle
为了覆盖 SonataUserBundle,我通过在其中创建另一个 UserAdmin 类来扩展 UserAdminsrc/Acme/DemoBundle/Admin/UserAdmin
并且一切正常
现在我想扩展 User 实体(fos_user
表)以添加新属性。
这是我想要扩展默认用户实体的 Acme/Demo/Entity/User.php
namespace Acme\DemoBundle\Entity;
use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/*
* @ORM\Column(type="string", name="newAttribute")
*/
protected $newAttribute;
public function __construct()
{
parent::__construct();
// your own logic
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
}
我应该怎么做才能扩展默认fos_user
表php app/console doctrine:generate:entities Acme/DemoBundle
我已经阅读了很多关于这个问题的帖子,但没有一个解决方案对我有帮助。我试图扩展模型类而不是实体类,但也没有任何改变