Od razu napiszę że rozwiązałem ten problem ale od razu powstał następny

A więc czytajcie do końca

.
Faktycznie w klasie user, w funkcji exchangeArray($data) brakowało id tak wyglądała przed:
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"]);
}
}
Tak wyglądała po
<?php
namespace Users\Model;
class User
{
public $id;
public $name;
public $email;
public $password;
public function setPassword($clear_password)
{
$this->password = md5($clear_password); }
function exchangeArray($data)
{
$this->id = (isset($data['id'])) ?
$data['id'] : null;
$this->name = (isset($data['name'])) ?
$data['name'] : null;
$this->email = (isset($data['email'])) ?
$data['email'] : null;
if (isset($data["password"])) {
$this->setPassword($data["password"]);
}
}
}
I fajnie wyświetla mi dane z kolumny id.
Oczywiście teraz chcę edytować i kasować rekordy z tabeli. Kasować mogę ale edytować nie

Help me
Edit Action
public function editAction()
{
$this->layout('layout/myaccount');
$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;
}
UserEditForm
<?php
// filename : module/Users/src/Users/Form/RegisterForm.php
namespace Users\Form;
use Zend\Form\Form;
class UserEditForm extends Form
{
public function __construct($name = null)
{
parent::__construct('Edit User');
$this->setAttribute('method', 'post');
$this->setAttribute('enctype','multipart/form-data');
'name' => 'id',
'type' => 'hidden',
),
));
'name' => 'name',
'type' => 'text',
'required' => 'required'
),
'label' => 'Full Name',
),
));
'name' => 'email',
'type' => 'email',
'required' => 'required'
),
'label' => 'Email',
),
));
'name' => 'submit',
'type' => 'submit',
'value' => 'Save'
),
));
}
}
Edit.phtml
Kod
<h3>Edit User Information</h3>
<?php if ($this->error): ?>
<p class="error">
There were one or more isues with your submission. Please correct them as
indicated below.
</p>
<?php endif ?>
<section>
<?php
$form = $this->form;
$form->prepare();
$form->setAttribute('action', $this->url('users/user-manager', array('action' => 'process')));
$form->setAttribute('method', 'post');
echo $this->form()->openTag($form);
?>
<dl class="zend_form">
<dt><?php echo $this->formLabel($form->get('name')); ?></dt>
<?php echo $this->formElement($form->get('id')); ?>
<dd><?php
echo $this->formElement($form->get('name'));
echo $this->formElementErrors($form->get('name'));
?></dd>
<dt><?php echo $this->formLabel($form->get('email')); ?></dt>
<dd><?php
echo $this->formElement($form->get('email'));
echo $this->formElementErrors($form->get('email'));
?></dd>
<dd><?php
echo $this->formElement($form->get('submit'));
echo $this->formElementErrors($form->get('submit'));
?></dd>
</dl>
<?php echo $this->form()->closeTag() ?>
</section>
Po kliknięciu w Edit dostaję taki komunikat:
Kod
An error occurred
An error occurred during execution; please try again later.
Additional information:
Zend\ServiceManager\Exception\ServiceNotFoundException
File:
C:\wamp\www\zend2book\vendor\zendframework\zendframework\library\Zend\ServiceManager\ServiceManager.php:495
Message:
Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for UserEditForm
Stack trace:
#0 C:\wamp\www\zend2book\module\Users\src\Users\Controller\UserManagerController.php(34): Zend\ServiceManager\ServiceManager->get('UserEditForm')
#1 C:\wamp\www\zend2book\vendor\zendframework\zendframework\library\Zend\Mvc\Controller\AbstractActionController.php(83): Users\Controller\UserManagerController->editAction()
#2 [internal function]: Zend\Mvc\Controller\AbstractActionController->onDispatch(Object(Zend\Mvc\MvcEvent))
#3 C:\wamp\www\zend2book\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.php(468): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#4 C:\wamp\www\zend2book\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.php(207): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#5 C:\wamp\www\zend2book\vendor\zendframework\zendframework\library\Zend\Mvc\Controller\AbstractController.php(117): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#6 C:\wamp\www\zend2book\vendor\zendframework\zendframework\library\Zend\Mvc\DispatchListener.php(114): Zend\Mvc\Controller\AbstractController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#7 [internal function]: Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
#8 C:\wamp\www\zend2book\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.php(468): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#9 C:\wamp\www\zend2book\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.php(207): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#10 C:\wamp\www\zend2book\vendor\zendframework\zendframework\library\Zend\Mvc\Application.php(309): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#11 C:\wamp\www\zend2book\public\index.php(17): Zend\Mvc\Application->run()
#12 {main}
Nie wiem dlaczego?