->add('shots','file', array(
'multiple' => true,
**'constraints' => array(
new Constraints\Image(array(
'maxSize' => '10M',
'allowSquare' => false,
'allowPortrait' => false,
'minRatio' => 1.43,
'maxRatio' => 2.4
)),
)**
))
这是具有整合形式验证器的symfony表单的一部分。但我得到一个我不明白的错误:
UnexpectedTypeException: Expected argument of type "string", "array" given
如果没有标记的部分,则可以使用。我检查了表单约束的引用,但我没有得到解决方案......
答案 0 :(得分:8)
这是Symfony\Component\Validator\Constraints\FileValidator
,它会引发您的异常。
期望您的表单值可以转换为字符串,但得到数组......
您应该尝试使用All约束作为File的周围约束,如下所示:
->add('shots','file', array(
'multiple' => true,
'constraints' => array(
new All(array(
'constraints' => array(
new Image(array(
'maxSize' => '10M',
'allowSquare' => false,
'allowPortrait' => false,
'minRatio' => 1.43,
'maxRatio' => 2.4
))
)
))
))
))
请参阅http://symfony.com/fr/doc/current/reference/constraints/All.html
答案 1 :(得分:0)
以这种方式尝试:
use Symfony\Component\Validator\Constraints\Image;
...
...
...
->add('shots','file', array(
'multiple' => true,
'constraints' => array(
new Image(array(
'maxSize' => '10M',
'allowSquare' => false,
'allowPortrait' => false,
'minRatio' => 1.43,
'maxRatio' => 2.4
)),
)
))