Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6a24c58

Browse files
committed
respect groups when merging constraints
1 parent 4864e9d commit 6a24c58

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

src/Symfony/Component/Validator/Mapping/ClassMetadata.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,10 @@ public function mergeConstraints(ClassMetadata $source)
354354
$member = clone $member;
355355

356356
foreach ($member->getConstraints() as $constraint) {
357-
$member->constraintsByGroup[$this->getDefaultGroup()][] = $constraint;
357+
if (in_array($constraint::DEFAULT_GROUP, $constraint->groups, true)) {
358+
$member->constraintsByGroup[$this->getDefaultGroup()][] = $constraint;
359+
}
360+
358361
$constraint->addImplicitGroupName($this->getDefaultGroup());
359362
}
360363

src/Symfony/Component/Validator/Tests/Mapping/ClassMetadataTest.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ public function testMergeConstraintsMergesMemberConstraints()
135135
{
136136
$parent = new ClassMetadata(self::PARENTCLASS);
137137
$parent->addPropertyConstraint('firstName', new ConstraintA());
138+
$parent->addPropertyConstraint('firstName', new ConstraintB(array('groups' => 'foo')));
138139

139140
$this->metadata->mergeConstraints($parent);
140141
$this->metadata->addPropertyConstraint('firstName', new ConstraintA());
@@ -148,9 +149,13 @@ public function testMergeConstraintsMergesMemberConstraints()
148149
'Default',
149150
'Entity',
150151
)));
152+
$constraintB = new ConstraintB(array(
153+
'groups' => array('foo'),
154+
));
151155

152156
$constraints = array(
153157
$constraintA1,
158+
$constraintB,
154159
$constraintA2,
155160
);
156161

@@ -166,6 +171,9 @@ public function testMergeConstraintsMergesMemberConstraints()
166171
$constraintA1,
167172
$constraintA2,
168173
),
174+
'foo' => array(
175+
$constraintB,
176+
),
169177
);
170178

171179
$members = $this->metadata->getPropertyMetadata('firstName');

0 commit comments

Comments
 (0)