【问题标题】:Username in current session当前会话中的用户名
【发布时间】:2017-05-21 16:23:50
【问题描述】:

我想在当前会话中添加带有用户名的隐藏字段。用户名位于另一个名为 User 的实体中。如何解决?

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('title', TextType::class, array('required' => false))
        ->add('description', TextareaType::class, array(
            'required' => false,
            'attr' => array('style' => 'resize: none')))
        ->add('imageFile', FileType::class);
}



public function addPhotoAction(Request $request)
{
    $photo = new Photo();
    $user = $this->getUser()->getId();
    $form = $this->createForm(PhotoFormType::class, $photo);
    $form->handleRequest($request);

    if($form->isSubmitted() && $form->isValid()){

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

        $this->addFlash('success', 'You\'ve shared a photo!');

        return $this->redirectToRoute('homepage');
    }

    return $this->render('pages/addPhoto.html.twig', [
        'photoForm' => $form->createView(),
        'user' => $user
    ]);
}

如何将 userId 添加到 $builder? id(user table) 必须在 addedBy(photo table) 中。我必须做一个关系?

【问题讨论】:

  • 您是否尝试从容器中获取用户?

标签: php forms symfony session


【解决方案1】:

您可以将数据推送到表单域。如果您将隐藏字段添加到表单对象,则它看起来像这些行。

$form = $this->createForm(PhotoFormType::class, $photo);
$form->get('usernameField')->setData($this->getUser()->getUsername());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    相关资源
    最近更新 更多