Я хочу расширить атрибуты сущности пользователя по умолчанию. В базе данных после расширения FOSUserBundle с помощью SonataUserBunle осталось 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, создав еще один класс UserAdmin в src/Acme/DemoBundle/Admin/UserAdmin
, и все работает нормально
Теперь я хочу расширить сущность пользователя (таблица 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
Я прочитал много сообщений об этой проблеме, но ни одно из решений не помогло мне. Я попытался расширить класс Model вместо класса Entity, но также ничего не изменилось.