簡體   English   中英

SonataUserBundle + FOSUserBundle 覆蓋表名或前綴 - Symfony 4

[英]SonataUserBundle + FOSUserBundle Override Table names or prefix - Symfony 4

使用 Symfony 4.1,SonataUserBundle 和 FOSUserBundle(當前)

按照說明,為用戶創建包裝類,還添加了 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 生成的表的名稱?

謝謝。

您正在尋找

* @ORM\Table(name="table_name")

不是

* @ORM\Entity(name="aegis_user")

要更改組表名稱,您必須編輯奏鳴曲用戶配置

配置/包/sonata_user.yaml

table:
    user_group: "my_custom_user_group_association_table_name"

有關更多詳細信息,請參見此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM