使用Symfony 4.1,SonataUserBundle和FOSUserBundle(当前)
按照说明进行操作,为User创建包装器类,还添加了ORM表名提示。
namespace App\Application\Sonata\UserBundle\Entity;
use Sonata\UserBundle\Entity\BaseUser as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* This file has been generated by the SonataEasyExtendsBundle.
* @ORM\Entity(name="aegis_user")
* @link https://sonata-project.org/easy-extends
*
* References:
* @link http://www.doctrine-project.org/projects/orm/2.0/docs/reference/working-with-objects/en
*/
class User extends BaseUser
{
/**
* @var int $id
*/
protected $id;
/**
* Get id.
*
* @return int $id
*/
public function getId()
{
return $this->id;
}
}
但是,生成的表名(主义迁移)仍然是fos_user_user,fos_user_group等。
$this->addSql('CREATE TABLE fos_user_group (id INT ...
$this->addSql('CREATE TABLE fos_user_user (id INT ...
$this->addSql('CREATE TABLE fos_user_user_group (user_id INT ...
我至少需要表名前缀才能更改为xxx_user,xxx_group。
如何在不修改捆绑软件代码的情况下更改FosUserBundle生成的表的名称?
谢谢。
答案 0 :(得分:0)
您要搜索
* @ORM\Table(name="table_name")
不是
* @ORM\Entity(name="aegis_user")
答案 1 :(得分:0)
要更改组表名称,您必须编辑奏鸣曲用户配置
config / packages / sonata_user.yaml
table:
user_group: "my_custom_user_group_association_table_name"
了解更多详情,it's documented here