Alacağınız nasıl param sorta, nerede bağlıdır
Sen burada ne yapmak istediğinizi elde etmek için bir istek $ param yakalamak zorunda değilsiniz. Sadece yığını bir mesaj eklemek için FlashMessenger yardımcı kullanarak edilir. Daha sonra ben successAction olduğu gibi görünümüne atamak sonra, mesajı göstermek istediğiniz eylem içinde mesaj almak. Eğer gibi denetleyicisi atayarak herhangi $ var ya da veri dizisi iletebilir unutmayın: $ this-> görünüm-> var = $ var; Sonra $ this-> var olarak erişilebilir olacak görünümü içinde.
Eğer giriş hakkında sorulan beri ben genellikle bunu nasıl göstereceğim. Değil, onun en iyi yolu o.
Benim LoginController dizin görünümü formunu tutar:
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.';
}
}
}
}
Başarı eylem biz bunu:
public function successAction() {
if ($this->_helper->getHelper('FlashMessenger')->getMessages()) {
$this->view->messages = $this->_helper
->getHelper('FlashMessenger')
->getMessages();
} else {
$this->_redirect('/login/success');
}
}
Görünümü scriptte ben aşağıda ne var gibi bir şey yapabilirsiniz. Ben bunu bu şekilde yapmak nedeni, bazen ben sadece kullanmak bu durumda, bir denetleyicisi tek bir mesajı geçecek olmasıdır:
$this->view->message = 'message goes here';
Sonra onları yakalamak hem de görünümde ayarlanmışsa:
<?php
if(isset($this->message) || isset($this->messages)):
?>
<?php
if(is_array($this->messages))
{
echo implode($this->messages);
} else {
echo $this->message;
}?>
<?php
endif
?>