В приложении 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
в базе данных при регистрации нового пользователя.
Есть идеи, как это сделать?