Binding Zend2 form data from doctrine2 ODM

bl4design picture bl4design · Oct 23, 2012 · Viewed 7.7k times · Source

Is there a better way to bind data from a doctrine2 ODM entity class to a Zend2 form besides using bind()?

If so, what would it be? Would I just retrieve the data as an array and pass each individual field? I am struggling with this and most likely making it harder than it needs to be.

When I call the bind() function it outputs a Zend error referencing the default hydrator. Do I need to do something special in my entity class?

Edit: Here are the exact errors Zend is throwing

~\vendor\zendframework\zendframework\library\Zend\Stdlib\Hydrator\ArraySerializable.php:35

Zend\Stdlib\Hydrator\ArraySerializable::extract expects the provided object to implement getArrayCopy()

They make me think I need to either:

  1. use Zends hydrators (which I'd have to research how to implement) or
  2. use doctrine2's hydrators (which, I'd also have to figure out the best way to implement)

Answer

Marcel Djaman picture Marcel Djaman · Mar 22, 2013

For Zend\Form being able to hydrating your entity you need to have something like that in your entity class:

public function getArrayCopy()
{
    return get_object_vars($this);
}