Symfony2添加当前用户以形成输入数据

我有一个标准的FOS用户,该用户与博客实体具有ManyToOne实体关系。

/**
 * @ORM\ManyToOne(targetEntity="User", inversedBy="blog")
 * @ORM\JoinColumn(name="user", referencedColumnName="id")
 */
private $user;

我已经使用了app / console generate:doctrine:crud命令来生成基本的crud系统。

创建新博客实体时,我想插入执行该操作的登录用户。默认情况下,Symfony生成CRUD代码,该代码允许用户选择将哪个用户连接到实体。

    $builder
        ->add('name')
        ->add('address')
        ->add('facebook')
        ->add('twitter')
        ->add('user')
    ;

在控制器中,我可以使用security.context访问登录的用户:

$user = $this->get('security.context')->getToken()->getUser();

改变这种状况的最佳方法是什么?

好的!解决了我自己的问题(如果我做错了,请随时纠正我,我会接受更好的答案)。然而,这似乎确实运作良好!

在执行$ form-> isValid()检查之后,可以将用户添加到控制器中例如,这是我的控制器功能。

public function createAction(Request $request)
{
    $entity  = new Blog();
    $form = $this->createForm(new BlogType(), $entity);
    $form->bind($request);

    if ($form->isValid()) {
        $entity->setUser($this->get('security.context')->getToken()->getUser());
        $em = $this->getDoctrine()->getManager();
        $em->persist($entity);
        $em->flush();
        return $this->redirect($this->generateUrl('blog_show', array('id' => $entity->getId())));
    }

    return $this->render('ExampleBundle:Blog:new.html.twig', array(
        'entity' => $entity,
        'form'   => $form->createView(),
    ));
}

用户需要从表单构建器中删除才能正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Django模型中保存时如何添加当前用户数据

自动添加当前用户的地理位置

添加当前时间并更改json结构数据python

Symfony2,FOSuser:使用空输入密码编辑用户

Symfony2形成部分绑定

多对多并形成Symfony2

如何在上传中添加当前用户的行ID

通过添加当前列将数据从平面文件加载到数据库表

QDateTime:自动添加当前年份

excel vb,添加当前行

在数据表中添加当前时间Ruby on Rails

Symfony2:如何通过考虑当前登录的用户来验证实体?

在 DQL 查询中添加当前用户和其他用户之间共同的 select COUNT 事件

symfony2:如果当前路径在树枝中匹配,如何添加“活动的” html类?

通过创建单独的变量来获取用户定义的天数,在 Django 模型中添加当前日期后的天数

Symfony2:如何为收集字段类型添加/删除输入表单?

反应:将用户输入的表单数据添加到当前状态

在Symfony2中,如何将会话添加到匿名用户

Symfony2用户密码更改

Symfony2和Angular。用户认证

Symfony2限制访问用户

symfony2以编程方式验证用户

不是symfony2中的authanticat用户

如何强制用户注销symfony2

symfony2 ajax用户搜索

Symfony2:注入@ security.context以获取当前用户。如何避免出现“ ServiceCircularReferenceException”?注入整个容器?

有什么方法可以从Symfony2 AppKernel.php中找出当前的用户名吗?

Symfony2:SonataAdminBundle-如何在管理类中获取代表当前用户的对象?

添加当前 YTD / 去年总计比较列