¿Cómo se obtiene el parámetro sorta depende de dónde se encuentre,
No necesita capturar una solicitud de $ param para lograr lo que quiere hacer aquí. Solo está usando el asistente de FlashMessenger para agregar un mensaje a la pila. A continuación, recupera el mensaje dentro de la acción en la que desea mostrar el mensaje, y luego lo asigna a la vista como lo hago en la acción successAction. Tenga en cuenta que puede pasar cualquier $ var o matriz de datos asignándolos en el controlador como: $ this-> view-> var = $ var; Dentro de la vista que se accederá como $ this-> var.
Como ha preguntado sobre el inicio de sesión, le mostraré cómo suelo hacerlo. No es la mejor manera.
vista del índice de mi LoginController mantiene la forma:
public function indexAction() {
$form = new Zfcms_Form_Login;
$this->view->form = $form;
/*check for valid input
authenticate using adapter
persist user record to session
redirect to original request URL if present*/
if ($this->getRequest()->isPost()) {
if ($form->isValid($this->getRequest()->getPost())) {
$values = $form->getValues();
$authAdapter = $this->getAuthAdapter();
# get the username and password from the form
$username = $values['username'];
$password = $values['password'];
# pass to the adapter the submitted username and password
$authAdapter->setIdentity($username)
->setCredential($password);
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate($authAdapter);
if ($result->isValid()) {
# all info about this user from the login table
# ommit only the password, we don't need that
$userInfo = $authAdapter->getResultRowObject(null, 'password');
# the default storage is a session with namespace Zend_Auth
$authStorage = $auth->getStorage();
$authStorage->write($userInfo);
$session = new Zend_Session_Namespace('zfcms.auth');
if (isset($session->requestURL)) {
$url = $session->requestURL;
unset($session->requestURL);
$this->_redirect($url);
} else {
$this->_helper->getHelper('FlashMessenger')
->addMessage('You were successfully logged in as ' . $userInfo->username);
$this->_redirect('/login/success');
}
} else {
$this->view->message = 'You could not be logged in. Please try again.';
}
}
}
}
En la acción éxito hacemos esto:
public function successAction() {
if ($this->_helper->getHelper('FlashMessenger')->getMessages()) {
$this->view->messages = $this->_helper
->getHelper('FlashMessenger')
->getMessages();
} else {
$this->_redirect('/login/success');
}
}
En el script de vista podemos hacer algo como lo que tengo a continuación. La razón por la que hago de esta manera es que a veces voy a transmitir un solo mensaje en un controlador, en este caso, simplemente uso:
$this->view->message = 'message goes here';
Entonces atraparlos tanto si se fijan en la vista:
<?php
if(isset($this->message) || isset($this->messages)):
?>
<?php
if(is_array($this->messages))
{
echo implode($this->messages);
} else {
echo $this->message;
}?>
<?php
endif
?>
¿Cómo recuperas $ params cuando llegas allí? –