Не работает по следующей причине:
Не обьявлен 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());
все начинает работать.
Каким образом у Вас совпадут md5()?
Если совпал с картинкой, то эта таже картинка и не стоит её дублировать, и отправляем её в temp на всякий пожарный, на сутки например, мало ли.
Вот и все.
РЕШЕНО!
Вообщем никто мне не помог, промучился и нашел ответ сам.
Ну почти сам. Надеюсь когда-нибудь кому-нибудь пригодится.
Вот ответ на вопрос:
'UserTableGateway' => function ($sm){
$dbAdapter = $sm->get('\Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new User());
return new TableGateway('user', $dbAdapter, null, $resultSetPrototype);
},
Использует класс: User(), в котором определены след методы:
<?php
namespace Users\Model;
class User{
public $id;
public $name;
public $email;
public $password;
public function setPassword($clear_password){
$this->password = md5($clear_password);
public function exchangeArray($data){
$this->name = (isset($data['name'])) ? $data['name'] : null;
$this->email = (isset($data['email'])) ? $data['email'] : null;
if(isset($data['password'])){
$this->setPassword($data['password']);
Добавляем
$this->id = (isset($data['id'])) ? $data['id'] : null;
перед.
Все инециализировали и id больше не null, ну пока существет естественно.