Symfony图像上传验证器不起作用

时间:2014-03-23 21:24:53

标签: validation symfony silex

我有一个带有文件上传表单的Silex应用程序,其中包含一个Image验证器。其他字段验证器似乎正在工作(即我可以使表单提交为无效),但文件上载似乎永远不会被验证。我已经尝试使用Symfony\Component\Validator\Constraints\FileSymfony\Component\Validator\Constraints\Image验证上传,但没有运气 - 一切都是有效的。即使是下面的示例,其中永远不能满足约束,也不会拒绝上传。我在这里缺少什么?

$this->validation = new Assert\Collection(array(
    'first_name' => new Assert\NotBlank(),
    'last_name' => new Assert\NotBlank(),
    'email' => new Assert\Email(),
    'address_1' => new Assert\NotBlank(),
    'city' => new Assert\NotBlank(),
    'state' => new Assert\Regex('/^(' . join('|', array_keys($this->state_list)) . ')$/'),
    'zip' => new Assert\NotBlank(),
    'photo' => new Assert\Image(array(
            'maxWidth' => 400,
            'minWidth' => 1000
    )),
    'caption' => new Assert\NotBlank()
));

1 个答案:

答案 0 :(得分:0)

在调试Symfony Validate文件几个小时后,我发现问题是文件不在$request->request而在$request->files中,因此解决方案是复制/移动它,以便验证器可以验证它。

 $request->request->set("photo", $request->files->get('photo'));