本文整理汇总了PHP中Zend\Form\Fieldset::setHydrator方法的典型用法代码示例。如果您正苦于以下问题:PHP Fieldset::setHydrator方法的具体用法?PHP Fieldset::setHydrator怎么用?PHP Fieldset::setHydrator使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend\Form\Fieldset
的用法示例。
在下文中一共展示了Fieldset::setHydrator方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testElementInAFieldsetForSomeModel
public function testElementInAFieldsetForSomeModel()
{
$element = $this->getMoneyFieldset();
$element->init();
$fieldset = new Fieldset('hasMoneyElementFieldset');
$fieldset->add($element, ['name' => 'price']);
$fieldset->setHydrator(new ClassMethods());
$fieldset->setUseAsBaseFieldset(true);
$form = new Form();
$form->add($fieldset);
// todo: can't load this
$form->bind(new HasMoneyPropertyModel());
$data = ['hasMoneyElementFieldset' => ['price' => ['amount' => '500.25', 'currency' => 'BRL']]];
$form->setData($data);
$this->assertTrue($form->isValid());
$amountValue = $form->get('hasMoneyElementFieldset')->get('price')->get('amount')->getValue();
$currencyValue = $form->get('hasMoneyElementFieldset')->get('price')->get('currency')->getValue();
$object = $form->getData();
$this->assertSame('500.25', $amountValue);
$this->assertSame('BRL', $currencyValue);
$this->assertInstanceOf(Money::class, $object->getPrice());
$this->assertSame(50025, $object->getPrice()->getAmount());
$this->assertSame('BRL', $object->getPrice()->getCurrency()->getName());
}
示例2: setHydrator
/**
* Set the hydrator to use when binding an object to the element
*
* @param HydratorInterface $hydrator
* @return FieldsetInterface
*/
public function setHydrator(HydratorInterface $hydrator)
{
if ($this->baseFieldset !== null) {
$this->baseFieldset->setHydrator($hydrator);
}
return parent::setHydrator($hydrator);
}
示例3: testCorrectlyHydrateBaseFieldsetWhenHydratorThatDoesNotIgnoreInvalidDataIsUsed
public function testCorrectlyHydrateBaseFieldsetWhenHydratorThatDoesNotIgnoreInvalidDataIsUsed()
{
$fieldset = new Fieldset('example');
$fieldset->add(array(
'name' => 'foo'
));
// Add an hydrator that ignores if values does not exist in the
$fieldset->setObject(new Entity\SimplePublicProperty());
$fieldset->setHydrator(new \Zend\Stdlib\Hydrator\ObjectProperty());
$this->form->add($fieldset);
$this->form->setBaseFieldset($fieldset);
$this->form->setHydrator(new \Zend\Stdlib\Hydrator\ObjectProperty());
// Add some inputs that do not belong to the base fieldset
$this->form->add(array(
'type' => 'Zend\Form\Element\Submit',
'name' => 'submit'
));
$object = new Entity\SimplePublicProperty();
$this->form->bind($object);
$this->form->setData(array(
'submit' => 'Confirm',
'example' => array(
'foo' => 'value example'
)
));
$this->assertTrue($this->form->isValid());
// Make sure the object was not hydrated at the "form level"
$this->assertFalse(isset($object->submit));
}
示例4: testCanBindObjectMultipleNestedFieldsets
public function testCanBindObjectMultipleNestedFieldsets()
{
$productFieldset = new ProductFieldset();
$productFieldset->setHydrator(new ClassMethods());
$productFieldset->setObject(new Product());
$nestedFieldset = new Fieldset('nested');
$nestedFieldset->setHydrator(new ClassMethods());
$nestedFieldset->setObject(new stdClass());
$nestedFieldset->add(array('name' => 'products', 'type' => 'Collection', 'options' => array('target_element' => $productFieldset, 'count' => 2)));
$mainFieldset = new Fieldset('main');
$mainFieldset->setUseAsBaseFieldset(true);
$mainFieldset->setHydrator(new ClassMethods());
$mainFieldset->setObject(new stdClass());
$mainFieldset->add(array('name' => 'nested', 'type' => 'Collection', 'options' => array('target_element' => $nestedFieldset, 'count' => 2)));
$form = new Form();
$form->setHydrator(new ObjectPropertyHydrator());
$form->add($mainFieldset);
$market = new stdClass();
$prices = array(100, 200);
$products[0] = new Product();
$products[0]->setPrice($prices[0]);
$products[1] = new Product();
$products[1]->setPrice($prices[1]);
$shop[0] = new stdClass();
$shop[0]->products = $products;
$shop[1] = new stdClass();
$shop[1]->products = $products;
$market->main = $shop;
$form->bind($market);
//test for object binding
foreach ($form->get('main')->getFieldsets() as $_fieldset) {
foreach ($_fieldset->getFieldsets() as $_nestedfieldset) {
$this->assertInstanceOf('ZendTest\\Form\\TestAsset\\Entity\\Product', $_nestedfieldset->get('products')->getObject());
}
}
}