bind() Zend framework 2 не работает.

SM
На сайте с 28.11.2014
Offline
0
3207

Доброго времени суток.

public function editAction(){

$userTable = $this->getServiceLocator()->get('UserTable');

$user = $userTable->getUser($this->params()->fromRoute('id'));

$form = $this->getServiceLocator()->get('UserEditForm');

$form->bind($user);

$viewModel = new ViewModel(array(

'form' => $form,

'user_id' => $this->params()->fromRoute('id')

));

return $viewModel;

}

$user - массив выбирается.

что не так может быть?

Select работает.


Additional information:
Zend\Stdlib\Exception\BadMethodCallException

File:

/var/www/CommunicationApp/vendor/zendframework/zendframework/library/Zend/Stdlib/Hydrator/ArraySerializable.php:29

Message:

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

Stack trace:

#0 /var/www/CommunicationApp/vendor/zendframework/zendframework/library/Zend/Form/Fieldset.php(641): Zend\Stdlib\Hydrator\ArraySerializable->extract(Object(Users\Model\User))
#1 /var/www/CommunicationApp/vendor/zendframework/zendframework/library/Zend/Form/Form.php(881): Zend\Form\Fieldset->extract()
#2 /var/www/CommunicationApp/vendor/zendframework/zendframework/library/Zend/Form/Form.php(303): Zend\Form\Form->extract()
#3 /var/www/CommunicationApp/module/Users/src/Users/Controller/UserManagerController.php(23): Zend\Form\Form->bind(Object(Users\Model\User))
#4 /var/www/CommunicationApp/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/AbstractActionController.php(83): Users\Controller\UserManagerController->editAction()
#5 [internal function]: Zend\Mvc\Controller\AbstractActionController->onDispatch(Object(Zend\Mvc\MvcEvent))
#6 /var/www/CommunicationApp/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(468): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#7 /var/www/CommunicationApp/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(207): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#8 /var/www/CommunicationApp/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/AbstractController.php(117): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#9 /var/www/CommunicationApp/vendor/zendframework/zendframework/library/Zend/Mvc/DispatchListener.php(114): Zend\Mvc\Controller\AbstractController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#10 [internal function]: Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
#11 /var/www/CommunicationApp/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(468): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#12 /var/www/CommunicationApp/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(207): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#13 /var/www/CommunicationApp/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php(313): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#14 /var/www/CommunicationApp/public/index.php(17): Zend\Mvc\Application->run()
#15 {main}


SM
На сайте с 28.11.2014
Offline
0
#1

Не работает по следующей причине:

Не обьявлен class ObjectProperty/

т.е. вот так надо в

EditAction(){

userTable = $this->getServiceLocator()->get('UserTable');

$user = $userTable->getUser($this->params()->fromRoute('id'));

$form = $this->getServiceLocator()->get('UserEditForm');

$form->setHydrator(new \Zend\Stdlib\Hydrator\ObjectProperty());

$form->bind($user);

if ($form->isValid()) {

$id = $this->getAlbumTable()->saveAlbum($form->getData());

}

$viewModel = new ViewModel(array(

'form' => $form,

'user_id' => $this->params()->fromRoute('id')

));

return $viewModel;

}

если добавить $form->setHydrator(new \Zend\Stdlib\Hydrator\ObjectProperty());

все начинает работать.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий