From 01ac805d3c3220ee256a80252728a514d58a5d97 Mon Sep 17 00:00:00 2001 From: Gauthier Gilles Date: Fri, 14 Dec 2018 13:21:20 +0100 Subject: [PATCH 1/3] add a little more example --- validation/raw_values.rst | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/validation/raw_values.rst b/validation/raw_values.rst index 65d166dea63..b69dcb318d8 100644 --- a/validation/raw_values.rst +++ b/validation/raw_values.rst @@ -51,6 +51,23 @@ Validation of arrays is possible using the ``Collection`` constraint:: $validator = Validation::createValidator(); + $input = array( + 'name' => array( + 'first_name' => 'Fabien', + 'last_name' => 'Potencier', + ), + 'email' => 'test@email.tld', + 'simple' => 'hello', + 'gender' => 3, + 'file' => null, + 'password' => 'test', + 'tags' => array( + array('slug' => 'symfony_doc', 'label' => 'symfony doc'), + ), + ); + + $groups = new Assert\GroupSequence(array('Default', 'custom')); + $constraint = new Assert\Collection(array( // the keys correspond to the keys in the input array 'name' => new Assert\Collection(array( @@ -62,9 +79,25 @@ Validation of arrays is possible using the ``Collection`` constraint:: 'gender' => new Assert\Choice(array(3, 4)), 'file' => new Assert\File(), 'password' => new Assert\Length(array('min' => 60)), + 'tags' => new Assert\Required(array( + new Assert\Type('array'), + new Assert\Count(['min' => 1]), + new Assert\All(array( + new Assert\Collection(array( + 'slug' => new Assert\Required(array( + new Assert\NotBlank(), + new Assert\Type(['type' => 'string']) + )), + 'label' => new Assert\Required(array( + new Assert\NotBlank(), + )), + )), + )), + new CustomUniqueTagValidator(['groups' => 'custom']) + )), )); - $violations = $validator->validate($input, $constraint); + $violations = $validator->validate($input, $constraint, $groups); The ``validate()`` method returns a :class:`Symfony\\Component\\Validator\\ConstraintViolationList` object, which acts just like an array of errors. Each error in the collection From 9bc09082ea4cd4eb2ab12100f0d4ead7b1117d68 Mon Sep 17 00:00:00 2001 From: Gauthier Gilles Date: Fri, 14 Dec 2018 13:24:15 +0100 Subject: [PATCH 2/3] fix array syntax --- validation/raw_values.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/validation/raw_values.rst b/validation/raw_values.rst index b69dcb318d8..49dd62114a1 100644 --- a/validation/raw_values.rst +++ b/validation/raw_values.rst @@ -81,19 +81,19 @@ Validation of arrays is possible using the ``Collection`` constraint:: 'password' => new Assert\Length(array('min' => 60)), 'tags' => new Assert\Required(array( new Assert\Type('array'), - new Assert\Count(['min' => 1]), + new Assert\Count(array('min' => 1)), new Assert\All(array( new Assert\Collection(array( 'slug' => new Assert\Required(array( new Assert\NotBlank(), - new Assert\Type(['type' => 'string']) + new Assert\Type(array('type' => 'string')) )), 'label' => new Assert\Required(array( new Assert\NotBlank(), )), )), )), - new CustomUniqueTagValidator(['groups' => 'custom']) + new CustomUniqueTagValidator(array('groups' => 'custom')) )), )); From 9108df557f30402aa4573a56c3ff7723b38340b2 Mon Sep 17 00:00:00 2001 From: Gauthier Gilles Date: Fri, 4 Jan 2019 14:06:55 +0100 Subject: [PATCH 3/3] review change --- validation/raw_values.rst | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/validation/raw_values.rst b/validation/raw_values.rst index 49dd62114a1..eafa71e7929 100644 --- a/validation/raw_values.rst +++ b/validation/raw_values.rst @@ -62,7 +62,10 @@ Validation of arrays is possible using the ``Collection`` constraint:: 'file' => null, 'password' => 'test', 'tags' => array( - array('slug' => 'symfony_doc', 'label' => 'symfony doc'), + array( + 'slug' => 'symfony_doc', + 'label' => 'symfony doc', + ), ), ); @@ -79,21 +82,21 @@ Validation of arrays is possible using the ``Collection`` constraint:: 'gender' => new Assert\Choice(array(3, 4)), 'file' => new Assert\File(), 'password' => new Assert\Length(array('min' => 60)), - 'tags' => new Assert\Required(array( + 'tags' => new Assert\Optional(array( new Assert\Type('array'), new Assert\Count(array('min' => 1)), new Assert\All(array( new Assert\Collection(array( - 'slug' => new Assert\Required(array( + 'slug' => array( new Assert\NotBlank(), new Assert\Type(array('type' => 'string')) - )), - 'label' => new Assert\Required(array( + ), + 'label' => array( new Assert\NotBlank(), - )), + ), )), + new CustomUniqueTagValidator(array('groups' => 'custom')), )), - new CustomUniqueTagValidator(array('groups' => 'custom')) )), ));