gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 21:53:47 25 4
gpt4 key购买 nike

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

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

我使用了 app/consolegenerate:doctrine:crud 命令来生成基本的 CRUD 系统。

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

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

在 Controller 中,我可以使用 security.context 访问登录用户:

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

改变这种情况的最佳行动方案是什么?

最佳答案

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

执行$form->isValid()检查后即可将用户添加到 Controller 中。这是我的 Controller 功能的示例。

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(),
));
}

需要将用户从表单生成器中删除才能使其正常工作。

关于Symfony2 添加当前用户以形成输入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18120931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com