使用当前用户id-symfony 2

使用当前用户id-symfony 2,symfony,doctrine-orm,fosuserbundle,fr3dldapbundle,Symfony,Doctrine Orm,Fosuserbundle,Fr3dldapbundle,我使用FOS用户包和LdapBundle让我的用户连接到网站。 我创建了一个表单,我想跟踪谁添加了条目。因此,我想将添加/修改该内容的用户保存到数据库中 最好的方法是什么?由于它将是一个表单,我的第一个想法是使用当前用户id在我的表单类型上创建一个隐藏字段,但我认为这是安全的 如有任何建议,将不胜感激 谢谢 我建议不要使用隐藏场,因为它很容易被操纵 更好的方法是将SecurityContext注入表单,并通过POST\u SUBMIT事件将登录用户绑定到该对象。我不知道ldapBundle,但当

我使用FOS用户包和LdapBundle让我的用户连接到网站。 我创建了一个表单,我想跟踪谁添加了条目。因此,我想将添加/修改该内容的用户保存到数据库中

最好的方法是什么?由于它将是一个表单,我的第一个想法是使用当前用户id在我的表单类型上创建一个隐藏字段,但我认为这是安全的

如有任何建议,将不胜感激


谢谢

我建议不要使用隐藏场,因为它很容易被操纵


更好的方法是将
SecurityContext
注入表单,并通过
POST\u SUBMIT
事件将登录用户绑定到该对象。

我不知道ldapBundle,但当我想保存例如照片时,我会在我的控制器中保存它

    $user=$this->security_context->getToken()->getUser();

    $form = $this->createForm(new PhotoType(), $photo )
    $request = $this->get('request');

    if ($request->getMethod() == 'POST') {

                $form->handleRequest($request);

                if ($form->isValid()) {

                   $photo->setUser($user);

                   $em = $this->getDoctrine()->getManager();
                   $em->persist($photo);
                   $em->flush();

            ....


这是一个基本代码,您还必须检查用户是否存在,然后再执行持久性:
if($user).

谢谢您的回答。我无法获得
$user=$this->security\u context…
工作,PHPStorm不断告诉我字段
security\u context
不存在,它是我的控制器。我必须包括什么?