Пример #1
0
 /**
  * @param object $object
  * @return $this|Fieldset|\Zend\Form\FieldsetInterface
  */
 public function setObject($object)
 {
     parent::setObject($object);
     //$this->get('contact')->setObject($object->contact);
     //$this->populateValues($this->extract());
     return $this;
 }
Пример #2
0
 public function setObject($object)
 {
     parent::setObject($object);
     /* @var $applyFormSettings \Settings\Form\DisableElementsCapableFormSettingsFieldset */
     $applyFormSettings = $this->get('applyFormSettings');
     $applyFormSettings->setObject($object->applyFormSettings);
     return $this;
 }
Пример #3
0
 public function setObject($object)
 {
     if ($object instanceof DraftableEntityInterface && !$object->isDraft()) {
         foreach ($this as $element) {
             $element->setAttribute('disabled', 'disabled');
         }
     }
     return parent::setObject($object);
 }
Пример #4
0
 public function setObject($object)
 {
     parent::setObject($object);
     $this->populateValues($this->extract());
     return $this;
 }
 public function setObject($object)
 {
     parent::setObject($object);
     $this->build();
     return $this;
 }
Пример #6
0
    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));
    }
Пример #7
0
 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());
         }
     }
 }