2017-05-21 12 views
1

現在のセッションにユーザー名を含む非表示フィールドを追加したいとします。ユーザー名は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 
    ]); 
} 

$ builderにuserIdを追加するにはどうすればよいですか? id(ユーザテーブル)はaddBy(写真テーブル)になければなりません。私は関係をしなければならないのですか?

+0

コンテナからユーザーを取得しようとしましたか? –

答えて

0

フォームフィールドにデータをプッシュできます。フォームオブジェクトに非表示フィールドを追加すると、これらの行のように見えます。

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

それは動作します!私はあなたにビールを借りてありがとう、ありがとうD –

関連する問題