php - 根据用户名向 FOS 用户添加自定义属性
问题描述
在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
在数据库中。
任何想法如何去做?
解决方案
推荐阅读
- mongodb - 基于mongodb聚合中的另一个属性在嵌套数组中查找对象
- c# - MySql 异常使用 DateTimeOffset.UtcNow 时无法序列化日期/时间值
- sql - 递归查找 PostgreSQL 10 层次结构
- python - 在 python 中使用 matpltlib 中的动画工具绘制移动(动画)椭圆体
- sql - 查找相交日期
- flutter - 我如何使用 bloc 在颤动中切换主题?
- java - 如何防止用户修改 OpenXava 中的某些字段?
- docker - 无法在 docker 中访问 Odoo 源代码 - docker-compose
- python - 如何在不打开对话框的情况下通过 Selenium (Python) 自动下载 CSV 文件
- forms - 如何使表单在列内可滚动