AddError消息不会出现

时间:2015-03-20 16:27:28

标签: php symfony error-handling twig

我在实现表单上传文件时遇到问题。 上传工作正常,但检查上传文件的扩展名并将错误添加到表单似乎有问题。

这是我的控制者:

public function add(Application $app) {

    // Build the form
    $addform = $app['form.factory']
            ->createNamed('addform', 'form')
            ->add('title', 'text', array(
                'constraints' => array(new Assert\NotBlank(), new Assert\Length(array('min' => 5)))
            ))
            ->add('content', 'textarea', array(
                'constraints' => array(new Assert\NotBlank())
            ))
            ->add('images', 'file', array(
                'constraints' => array(new Assert\NotBlank())
            ));

    // Check file extension. If it's invalid, we'll manually add an error the form so that isValid() ends up returning false later one
        $files = $app['request']->files->get($addform->getName());

        if ($files['images'][0] !== null) {
            foreach ($files['images'] as $image) {
                if('.jpg' !== substr($image->getClientOriginalName(), -4)) {
                    $addform->get('images')->addError(new \Symfony\Component\Form\FormError('Only .jpg allowed'));
                }
            }
        }

    // Form was submitted: process it
    $addform->handleRequest($app['request']);


    // Form is valid
    if ($addform->isValid()) {

        // Add blogpost to database and save images

    }

    // Render the template with the form
    return $app['twig']->render('admin/blog/add.twig', array(
        'user' => $app['session']->get('user'),
        'addform' => $addform->createView()
    ));

}

在我的twig文件中上传图片的部分如下所示:

<div class="form-group">
    {{ form_label(addform.images) }}
    {{ form_widget(addform.images, { 'full_name': addform.images.vars.full_name ~ '[]', 'attr' : { 'multiple': 'multiple' }} ) }}
    {{ form_errors(addform.images) }}
</div>

我真的不明白我做错了什么。 我做了一个var_dump的addform-&gt; get ['images']并且错误肯定在那里,但是当我在我的twigfile中尝试转储addform.images时,没有错误的迹象。所以当然它不会显示错误。

我遇到的另一个问题是,在添加错误后表单仍然有效。所以我想手动添加错误不会使表单无效?

0 个答案:

没有答案