Llevo un tiempo trabajando incomodo con zend framework cuando quiero cargar vistas que procesen operaciones, es decir que no son simplente html, en por ejemplo `response segments´ del objeto layout().
Si por ejemplo cargo un formulario de login:
Código PHP:
$this->_view->layout()->loginForm = $this->_view->action('index', 'login', 'users');
Cuando se ejecuta ese action se produce un render que muestra el formulario...Entonces para solucionar esto se me ocurren 2 posibilidades:
El problema es que si alguién entonces va mediante la url a http://127.0.0.1/app/users/login
Entonces el formulario hace render en el segmento del layout que le asignamos... pero también hace render el segmento `content´ que es donde hace por defecto el render de las actions.
Conclusión, me aparecen 2 formularios de login...
Para solucionarlo al final del action hice $this->_forward('index', 'index', 'default');
Pero así, lo que conseguimos es que se cargue en `content´ la página principal si accedemos a http://127.0.0.1/app/users/login
Y esto queda un tanto artificial... si por ejemplo tu estabas en http://127.0.0.1/app/users/profile ya que te rompe/resetea la navegación ke llevabas haciendo.
1.- Conseguir alguna forma de mantener en una variable que request había antes de hacer login (la carga anterior). Y si se accede a a http://127.0.0.1/app/users/login hacer un $this->forward() al esa carga anterior.Pero no se como hacer alguna de estas dos cosas... Tengo como más de 100 pestañas en el firefox buscando info... pero no me sale nah ! Y estoy un poco arto.
2.- Deshabilitar el renderizado automático, de forma se muestra lo que yo le haya dicho de forma explicita. y ya deberían aparecer 2 loginForms
Alguién me puede ayudar un poco ?
Merci