Hello 
i have the following setup similar to the Doctrine hydrate example

LabelController:

public function addAction()
    {
        // Get your ObjectManager from the ServiceManager
        $objectManager = 
$this->getServiceLocator()->get('Doctrine\ORM\EntityManager');

        // Create the form and inject the ObjectManager
        $form = new CreateLabelForm($objectManager);

        // Create a new, empty entity and bind it to the form
        $label = new Label();
        $form->bind($label);

        if ($this->request->isPost())
        {
            $form->setData($this->request->getPost());

            if ($form->isValid())
            {
                $objectManager->persist($label);
                $objectManager->flush();
            }
        }

        return array('form' => $form);
    }

Form:

class CreateLabelForm extends Form
{

    protected $objectManager;

    public function __construct(ObjectManager $objectManager)
    {
        parent::__construct('create-label-form');
        $this->setObjectManager($objectManager);

        $this->setHydrator(new DoctrineHydrator($this->getObjectManager()));

        $this->addElements();
    }

    public function addElements()
    {
        // Add the product fieldset, and set it as the base fieldset
        $labelFieldset = new LabelFieldSet($this->getObjectManager());
        $labelFieldset->setUseAsBaseFieldset(true);
        $this->add($labelFieldset);


        $this->add(array(
            'name' => 'submit',
            'type' => 'Submit',
            'attributes' => array(
                'value' => 'Go',
                'id' => 'submitbutton',
                'class' => 'btn btn-primary'
            ),
        ));
    }

    /**
     * Get objectManager
     * 
     * @return type 
     */
    public function getObjectManager()
    {
        return $this->objectManager;
    }

    /**
     * Set objectManager
     * 
     * @param ObjectManager $objectManager
     * @return \Cms\Form\ProductForm
     */
    public function setObjectManager(ObjectManager $objectManager)
    {
        $this->objectManager = $objectManager;

        return $this;
    }

}

Fieldset:

class LabelFieldSet extends Fieldset implements InputFilterAwareInterface
{

    /**
     * @var ObjectManager
     *
     */
    protected $objectManager;

    /**
     * @var LabelRepository
     *
     */
    protected $labelRepository;

    public function __construct(ObjectManager $objectManager)
    {
        parent::__construct('label');

        $this->setObjectManager($objectManager);
        $this->setHydrator(new 
DoctrineEntity($this->getObjectManager()))->setObject(new Label());

        $this->addElements();
    }

    public function addElements()
    {
        $this->add(array(
            'type' => 'Zend\Form\Element\Text',
            'name' => 'name',
            'attributes' => array(
                'type' => 'text',
                'id' => 'searchLabels',
                'placeholder' => 'Enter label name'
            ),
            'options' => array(
                'label' => 'Label'
            )
        ));
    }

    /**
     * Get labelRepository
     * 
     * @return type 
     */
    public function getLabelRepository()
    {
        return $this->labelRepository;
    }

    /**
     * Set labelRepository
     * 
     * @param LabelRepository $labelRepository
     * @return \Cms\Form\LabelSearchFieldSet
     */
    public function setLabelRepository(LabelRepository $labelRepository)
    {
        $this->labelRepository = $labelRepository;

        return $this;
    }

    /**
     * Get objectManager
     * 
     * @return type 
     */
    public function getObjectManager()
    {
        return $this->objectManager;
    }

    /**
     * Set objectManager
     * 
     * @param ObjectManager $objectManager
     * @return \Cms\Form\LabelSearchFieldSet
     */
    public function setObjectManager(ObjectManager $objectManager)
    {
        $this->objectManager = $objectManager;

        return $this;
    }

    /**
     * Method builds up a \Zend\InputFilter\InputFilter for validating 
Genre related input.
     * 
     * @return type \Zend\InputFilter\InputFilter
     */
    public function getInputFilter()
    {
        if (!$this->inputFilter)
        {
            $inputFilter = new InputFilter();
            $factory = new Factory();

            $inputFilter->add($factory->createInput(array(
                        'name' => 'name',
                        'required' => true,
                        'filters' => array(
                            array('name' => 'StripTags'),
                            array('name' => 'StringTrim'),
                        ),
                        'validators' => array(
                            array(
                                'name' => 'StringLength',
                                'options' => array(
                                    'encoding' => 'UTF-8',
                                    'min' => 1,
                                    'max' => 255,
                                ),
                            ),
                        ),
            )));

            $this->inputFilter = $inputFilter;
        }

        return $this->inputFilter;
    }

    /**
     * Method is not used. The inputfilter is setup in @see 
LabelFieldSet::getInputFilter()
     * 
     * @param \Entities\InputFilterInterface $inputFilter
     * @throws Exception
     */
    public function setInputFilter(InputFilterInterface $inputFilter)
    {
        throw new Exception("Not used");
    }

}

View add.phtml

<?php
// module/cms/view/label/add.phtml:

$title = 'Add Label';
$this->headTitle($title);
?>
<h1><?php echo $this->escapeHtml($title); ?></h1>

<?php
$form->setAttribute('action', $this->url('label', array('action' => 
'add')));
$form->setAttribute('class', 'form-horizontal');

echo $this->form()->openTag($form);

$label = $form->get('label');
?>
<div class="form-group">
    <?php echo $this->formCollection($form->get('label')); ?>
</div>
<div class="form-group">
    <?php echo $this->formElement($form->get('submit')); ?>
</div>


<?php
echo $this->form()->closeTag();
?>

I keep getting the following error messages:

Notice: Undefined index: label in 
/home/ubuntu/NetBeansProjects/antenne-tilburg/vendor/zendframework/zendframework/library/Zend/Form/Form.php
 
on line 
*363*
Catchable fatal error: Argument 1 passed to 
Zend\Form\Fieldset::bindValues() must be of the type array, null given, 
called in /zendframework/zendframework/library/Zend/Form/Fieldset.php on 
line 

*571*I see all the data is getting passed normally however it looks for a 
label, but it should look for a name value.

Could anyone please help me out?

Thanks a lot

-- 
You received this message because you are subscribed to the Google Groups 
"doctrine-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/doctrine-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to