2017-05-21 3 views
1

Je souhaite ajouter un champ masqué avec nom d'utilisateur dans la session en cours. Le nom d'utilisateur est dans une autre entité appelée Utilisateur. Comment le résoudre?Nom d'utilisateur dans la session en cours

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 
    ]); 
} 

Comment puis-je ajouter userId à $ builder? id (table utilisateur) doit être dans addedBy (tableau photo). Je dois faire une relation?

+0

Avez-vous essayé d'obtenir l'utilisateur du conteneur? –

Répondre

0

Vous pouvez placer les données dans le champ de formulaire. Si vous ajoutez un champ masqué pour former un objet, il ressemble à ces lignes.

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

Cela fonctionne! Merci monsieur, je vous dois une bière; D –