1

我需要在模型的某些字段中写入登录用户的名称(我有一个父文档和一些嵌入式文档)

我在我的管理类中注入了安全上下文

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 和一个(简单)扩展奏鸣曲用户的捆绑包:我必须使用它们来获取用户?

您对解决这个问题有什么建议吗?

非常感谢

嵌入文档的表格

4

1 回答 1

1

如果你写

$appunto->setOperatore($user->getUsername());

prePersist函数中,一旦你按下保存按钮,它就会保存它,就在它保存在内存中之前。

尝试在__constructor()函数中的 appunto 对象上设置运算符,它会在appunto对象中显示用户名。

请记住,您必须为每个子对象设置用户,例如$appunto->getSubObject()->setOperatore($user);

于 2013-09-18T11:41:48.367 回答