Pongo un poco de código para ver si así me explico mejor.
Código PHP:
public function signAction()
{
$request = $this->getRequest();
$form = new Application_Form_Guestbook();
$form->setAction(Zend_Controller_Front::getInstance()->getBaseUrl() . '/guestbook/process');
Zend_Session::start();
$session = new Zend_Session_Namespace('guestbook');
// check session stored errors
if ($session->errors) {
// add error messages to form
$form->setErrors($session->errors);
$form->populate($session->data);
// unset session vars
unset($session->data);
unset($session->errors);
}
$this->view->form = $form;
}
public function processAction()
{
$request = $this->getRequest();
$form = new Application_Form_Guestbook();
if ($request->isPost()) {
if ($form->isValid($request->getPost()) === false) {
Zend_Session::start();
$session = new Zend_Session_Namespace('guestbook');
$session->data = $request->getPost();
$session->errors = $form->getErrors();
}
}
return $this->_helper->redirector->gotoSimple('sign');
}
En el action 'sign' es dónde se muestra el formulario. Pero, además, quiero mostrar errores si se han producido en el 'process'.
En el action 'process' es dónde se llama al conocido método isValid. Lo que estoy intentando ahí es guardar los errores en una variable sesión. Luego, en 'sign' le paso al formulario los errores guardados en sesión.
Esta aproximación no funciona de igual manera que si tuviera el formulario y el proceso en el mismo action.