2017-10-17 12 views
1

Je veux ajouter un champ de fichier dans mon formulaire [symfony2.5].Symfony2 - Fichier de type de champ de saisie

Je veux ouvrir l'explorateur de fichiers pour sélectionner un fichier et afficher son chemin dans la vue comme:

« C: //path/to/file.docx »

Je ne veux pas télécharger une image ou quoi que ce soit, juste la chaîne de chemin.

Je viens d'ajouter cet attribut dans mon annonce entité:

/** 
    * @var string 
    * 
    * @ORM\Column(type="text", length=255, nullable=false) 
    * @Assert\NotBlank(message="Please, upload the product brochure as a PDF file.") 
    */ 
    private $attachment; 


/** 
    * Set attachment 
    * 
    * @param string $attachment 
    * @return Advert 
    */ 
    public function setAttachment($attachment) 
    { 
     $this->title = $attachment; 

     return $this; 
    } 

    /** 
    * Get attachment 
    * 
    * @return string 
    */ 
    public function getAttachment() 
    { 
     return $this->title; 
    } 

dans mon formulaire/AdvertType.php J'ai ajouté:

->add('attachment', 'file') 

Voici mon addAction:

public function addAction(Request $request) 
{ 
    $advert = new Advert(); 
    $form = $this->createForm(new AdvertType(), $advert); 
    $usr = $this->get('security.context')->getToken()->getUser(); 

    if ($form->handleRequest($request)->isValid()) { 
     $em = $this->getDoctrine()->getManager(); 
     $advert->setAuthor($usr->getUsername()); 
     $advert->setDate(new \DateTime); 
     $em->persist($advert); 
     $em->flush(); 
     $request->getSession()->getFlashBag()->add('info', 'Annonce bien enregistrée.'); 

     // On redirige vers la page de visualisation de l'annonce nouvellement créée/ 
     return $this->redirect($this->generateUrl('info_view', array('id' => $advert->getId()))); 
    } 

    return $this->render('SocietyPerfclientBundle:Default:add.html.twig', array(
     'form' => $form->createView(), 
    )); 
} 

Mon @Assert \ NotBlank (message = "Veuillez télécharger la brochure du produit sous forme de fichier PDF.") Est toujours là .. enter image description here

obtenu cette erreur: enter image description here

Je ne comprends pas ce qui est erroné s'il vous plaît aidez-moi ..

Répondre

0

Ne pas vous avez besoin d'un $ form-> isSubmitted() avec votre vérification $ form-> isValid()? Si vous laissez @Assert \ NotBlank() sans message, le message par défaut "Cette valeur ne doit pas être vide" apparaît-il?

+0

Oui, le message par défaut "Cette valeur ne doit pas être vide" apparaît. –