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