我需要在模型的某些字段中写入已登录用户的名称(我有父文档和一些嵌入文档)
我在管理类
中注入了安全上下文calls:
- [ setTranslationDomain, [QMAdminBundle]]
- [ setSecurityContext, [@security.context]]
然后我写了我的setSecurityContext
public function setSecurityContext($securityContext) {
$this->securityContext = $securityContext;
}
public function getSecurityContext() {
return $this->securityContext;
}
public function prePersist($appunto) {
$user = $this->getSecurityContext()->getToken()->getUser();
$appunto->setOperatore($user->getUsername());
}
不幸的是它没有写用户...也许这是因为我有一个父文档(我不需要写用户)和一些嵌入文档(我想写用户的地方)我在父母表格中显示(请参见图片)?
我使用fosuserbundle,以及(easy-)扩展奏鸣曲用户的捆绑包:我必须使用它们来获取用户?
您有什么建议可以解决这个问题吗?
非常感谢
答案 0 :(得分:1)
如果你写
$appunto->setOperatore($user->getUsername());
在prePersist
函数中,只有在按下保存按钮之后,它才会保存在内存中。
尝试在__constructor()
函数中的appunto对象上设置运算符,它将在appunto
对象中显示用户名。
请记住,您必须为每个子对象设置用户
比如$appunto->getSubObject()->setOperatore($user);