[Validator] Allow validating multiple groups in one GroupSequence step
This commit is contained in:
parent
3847badd47
commit
31b609e582
@ -57,7 +57,7 @@ class GroupSequence
|
|||||||
/**
|
/**
|
||||||
* The groups in the sequence.
|
* The groups in the sequence.
|
||||||
*
|
*
|
||||||
* @var string[]|GroupSequence[]
|
* @var string[]|array[]|GroupSequence[]
|
||||||
*/
|
*/
|
||||||
public $groups;
|
public $groups;
|
||||||
|
|
||||||
|
@ -1212,6 +1212,20 @@ abstract class AbstractValidatorTest extends \PHPUnit_Framework_TestCase
|
|||||||
'Violation in Group 2',
|
'Violation in Group 2',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
array(
|
||||||
|
'sequence' => new GroupSequence(array('Group 1', array('Group 2', 'Group 3'), 'Entity')),
|
||||||
|
'assertViolations' => array(
|
||||||
|
'Violation in Group 2',
|
||||||
|
'Violation in Group 3',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'sequence' => array('Group 1', array('Group 2', 'Group 3'), 'Entity'),
|
||||||
|
'assertViolations' => array(
|
||||||
|
'Violation in Group 2',
|
||||||
|
'Violation in Group 3',
|
||||||
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -773,7 +773,7 @@ class RecursiveContextualValidator implements ContextualValidatorInterface
|
|||||||
$cascadedGroups = $cascadedGroup ? array($cascadedGroup) : null;
|
$cascadedGroups = $cascadedGroup ? array($cascadedGroup) : null;
|
||||||
|
|
||||||
foreach ($groupSequence->groups as $groupInSequence) {
|
foreach ($groupSequence->groups as $groupInSequence) {
|
||||||
$groups = array($groupInSequence);
|
$groups = (array) $groupInSequence;
|
||||||
|
|
||||||
if ($metadata instanceof ClassMetadataInterface) {
|
if ($metadata instanceof ClassMetadataInterface) {
|
||||||
$this->validateClassNode(
|
$this->validateClassNode(
|
||||||
|
Reference in New Issue
Block a user