我在User类中添加了一个属性“color”,因此当用户注册时,我希望为该用户分配一个随机颜色。
如何巧妙地做到这一点?
答案 0 :(得分:2)
答案 1 :(得分:1)
我会在User实体中添加一个生命周期事件,一个prePersist事件。
在您的用户类中定义setRandomColor
方法,该方法随机设置用户的颜色属性。
然后,将其作为prePersist事件添加到您的学说实体配置中。
lifecycleCallbacks:
prePersist: [ setRandomColor ]
答案 2 :(得分:0)
如果您在单个会话期间需要用户颜色,则可以为执行此操作的用户定义属性:
$this->getUser()->setAttribute('attr-name',$attr-value);
并使用以下内容获取该属性:
$this->getUser()->getAttribute('attr-name');
但是,如果你想保留属性,就好像它是用户表中的属性一样 你可以
(显然)更新架构并在表格中添加字段
使用hash function在用户表格的主键上获取颜色。