【发布时间】:2017-03-01 13:07:30
【问题描述】:
当我尝试使用 Collection 约束来验证标量时,symfony 验证器会抛出异常。我希望它会返回违规行为。
示例代码:
use Symfony\Component\Validator\Validation;
use Symfony\Component\Validator\Constraints\Length;
use Symfony\Component\Validator\Constraints\Collection;
$validator = Validation::createValidator();
$input = 'testtesttest';
$constraints = [
new Collection([
'fields' => [
'one' => new Length(array('min' => 10))
]
])
];
$violationList = $validator->validate($input, $constraints);
抛出
PHP Fatal error: Uncaught Symfony\Component\Validator\Exception\UnexpectedTypeException: Expected argument of type "array or Traversable and ArrayAccess", "string" given in vendor/symfony/validator/Constraints/CollectionValidator.php:37
我在这里做错了吗?
对于其他约束类(例如 NotBlank、Type),验证器会在遇到无效内容时将其添加到违规列表中。在 Collection 的情况下让它抛出异常对我来说似乎很奇怪。我是不是做错了什么?
【问题讨论】:
标签: php validation symfony