Symfony2 - 输入字段类型文件

时间:2017-10-17 15:01:30

标签: file symfony input

我想在我的[symfony2.5]表单中添加一个文件字段。

我想打开文件资源管理器来选择文件,并在视图中显示他的路径,如:

“C://path/to/file.docx”

我不想上传图片或其他内容,只需要上传路径字符串。

我刚刚在我的广告实体中添加了该属性:

    /**
     * @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;
    }

在我的表格/ AdvertType.php中,我添加了:

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

这是我的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(),
    ));
}

我的@Assert \ NotBlank(消息=“请将产品手册上传为PDF文件。”)始终在这里.. enter image description here

出现此错误:enter image description here

我不明白什么不对请帮助我..

1 个答案:

答案 0 :(得分:0)

你需要一个$ form-> isSubmitted()和你的验证$ form-> isValid()? 如果你让@Assert \ NotBlank()没有消息,那么"这个值不应该为空白"出现默认消息?