Добавить пользовательское свойство для пользователя FOS на основе имени пользователя - PullRequest
0 голосов
/ 02 октября 2019

В приложении Symfony 3.4 у меня есть Entity\User, который расширяет FOS\UserBundle\Model\User. У меня есть несколько пользовательских свойств, которые добавляются в базу данных при регистрации нового пользователя, например:

    /**
     * @ORM\Column(name="foo", type="string")
     */
    private $foo;

    public function __construct()
    {
        parent::__construct();

        if(empty($this->foo)) {
            $this->foo = 'bar';
        }
    }

… и это прекрасно работает. Однако , у меня также есть свойство, содержание которого должно автоматически основываться на username. (Немного похоже на username_canonical, но к нему применена другая логика. Указанная логика выходит за рамки этого вопроса.) Я пытался назначить username различными способами:

    /**
     * @ORM\Column(name="username_thing", type="string")
     */
    private $username_thing;

    public function __construct()
    {
        parent::__construct();

        if(empty($this->username_thing)) {
            $this->username_thing = $this->username; // Method 1.
            $this->username_thing = $this->getUsername(); // Method 2.
            $this->username_thing = parent::getUsername(); // Method 3.
            $this->setUsernameThing($this->username); // Method 4.
            // etc.
        }
    }

… Но что бы я ни делал, свойство всегда заканчивается NULL в базе данных при регистрации нового пользователя.

Есть идеи, как это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...