数组的Symfony2验证组

时间:2015-10-01 15:36:08

标签: php arrays validation symfony

我想使用验证组验证数组,因为某些情况但验证组似乎不会影响数组?

<div id="exams">
    <div class="intro" ui-view="exams.intro"></div>
    <div class="auth" ui-view="exams.auth"></div>
</div>

验证错误:

$params = [
    'type' => 'a',
    'province' => 'b',
    'district' => 'c'
];

$constraints = new Collection([
    'type' => [new NotBlank()],

    'province' => [new NotBlank(['groups' => ['selection']])],
    'district' => [new NotBlank(['groups' => ['selection']])],

    'distance' => [new NotBlank(['groups' => ['location']])],
    'lat' => [new NotBlank(['groups' => ['location']])],
    'lon' => [new NotBlank(['groups' => ['location']])],
]);

$errors = $this->container->get('validator')->validate($params, $constraints, ['selection']);

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

你需要像这样使用'allowMissingFields' => true,

$constraints = new Collection(
'allowMissingFields' => true,
'fields' => [
    'type' => [new NotBlank()],

    'province' => [new NotBlank(['groups' => ['selection']])],
    'district' => [new NotBlank(['groups' => ['selection']])],

    'distance' => [new NotBlank(['groups' => ['location']])],
    'lat' => [new NotBlank(['groups' => ['location']])],
    'lon' => [new NotBlank(['groups' => ['location']])],
]);

https://symfony.com/doc/2.7/reference/constraints/Collection.html

CollectionValidator在验证约束NotBlank之前检查字段是否存在。