我正在尝试将当前的user_id自动添加到created_by或updated_by字段中。 但我似乎无法将当前的user_id放入另一个表的实体中。 我正在使用FOSUserBundle ....
/**
* @ORM\PrePersist
*/
public function setCreatedByValue()
{
if(!$this->getCreatedBy())
{
$user= $this->container->get('security.context')->getToken()->getUser();
$this->created_by = $user->getId();
}
}
这会抛出一个Undefined属性:.....容器错误: - (
如何访问当前用户ID?
感谢您的帮助。
答案 0 :(得分:2)
您的实体没有任何对容器的引用。这$this->container
来自哪里?无处不在。
有很多方法可以解决问题,但最好是实施所需的方法而不是解决问题:)
所以我会建议一个Doctrine监听器,它会在每次创建实体时修改createdBy
值。
事实上,它已经存在:https://github.com/KnpLabs/DoctrineBehaviors#blameable