Skip to content
This repository was archived by the owner on Jan 30, 2020. It is now read-only.

Commit a973a0f

Browse files
committed
Merge branch 'hotfix/214' into develop
Forward port #214
2 parents 6ceabaf + 1bc6df3 commit a973a0f

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

test/FormTest.php

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2299,4 +2299,57 @@ public function testShouldHydrateEmptyCollection()
22992299
$this->assertTrue($this->form->isValid());
23002300
$this->assertEquals([], $this->form->getObject()->foo);
23012301
}
2302+
2303+
/**
2304+
* Test for https://github.com/zendframework/zend-form/issues/83
2305+
*/
2306+
public function testCanBindNestedCollectionAfterPrepare()
2307+
{
2308+
2309+
$collection = new Element\Collection('numbers');
2310+
$collection->setOptions([
2311+
'count' => 2,
2312+
'allow_add' => false,
2313+
'allow_remove' => false,
2314+
'target_element' => [
2315+
'type' => 'ZendTest\Form\TestAsset\PhoneFieldset'
2316+
]
2317+
]);
2318+
2319+
$form = new Form();
2320+
$object = new \ArrayObject();
2321+
$phone1 = new \ZendTest\Form\TestAsset\Entity\Phone();
2322+
$phone2 = new \ZendTest\Form\TestAsset\Entity\Phone();
2323+
$phone1->setNumber('unmodified');
2324+
$phone2->setNumber('unmodified');
2325+
$collection->setObject([$phone1, $phone2]);
2326+
2327+
$form->setObject($object);
2328+
$form->add($collection);
2329+
2330+
$value = [
2331+
'numbers' => [
2332+
[
2333+
'id' => '1',
2334+
'number' => 'modified',
2335+
],
2336+
[
2337+
'id' => '2',
2338+
'number' => 'modified',
2339+
],
2340+
],
2341+
];
2342+
2343+
$form->prepare();
2344+
2345+
$form->bindValues($value);
2346+
2347+
$fieldsets = $collection->getFieldsets();
2348+
2349+
$fieldsetFoo = $fieldsets[0];
2350+
$fieldsetBar = $fieldsets[1];
2351+
2352+
$this->assertEquals($value['numbers'][0]['number'], $fieldsetFoo->getObject()->getNumber());
2353+
$this->assertEquals($value['numbers'][1]['number'], $fieldsetBar->getObject()->getNumber());
2354+
}
23022355
}

0 commit comments

Comments
 (0)