Zend Framework poznaję od niedawna i problemów mi nie sprawia prócz jednego modułu - Zend_Form. Ale do rzeczy:
1. logowanie do systemu wykonałem w następujący sposób:
Administration_LoginController:
<?php class Administration_LoginController extends Zend_Controller_Action { public function init() { $this->_helper->layout()->setLayout('login'); $this->_auth = Zend_Auth::getInstance(); } public function indexAction() { $this->view->form = $this->getForm()->render(); } protected function getForm() { $form = new Zend_Form(); $form->setAction('/administracja/logowanie') ->setMethod('get'); $username->setRequired(true); $password->setRequired(true); $form->addElement($username) ->addElement($password) return $form; } public function loginAction() { $this->view->status = 1; if (!$this->getRequest()->isPost()) { return $this->_forward('index'); } $form = $this->getForm(); if (!$form->isValid($_POST)) { $this->view->form = $form->render(); $this->render('index'); } else { $values = $form->getValues(); $authAdapter = Zend_Registry::get('auth'); $authAdapter->setIdentity($values['login']) ->setCredential($values['password']); $result = $this->_auth->authenticate($authAdapter); if(!$result->isValid()) { $this->view->status = 0; return $this->_forward('index'); } else { $this->_redirect('/administracja'); } } } public function logoutAction() { $this->_auth->clearIdentity(); $this->_redirect('/administracja'); } } ?>
Router oczywiście przepisuje adresy pod odpowiednie akcje. I całośc działa świetnie.
2. Na jednej ze stron panelu administracyjnego chcę zrobić formularz do nadawania uprawnień użytkownikom. Teoretycznie żaden problem jednak jakimś cudem dane nie chcą przejść. Wkleiłem więc IDENTYCZNY (jak w kontrolerze powyżej) formularz do tego panelu. Efekt? "Proteza" w UserController nie dziala.

Administration_UserController:
<?php class Administration_UserController extends Zend_Controller_Action { public function init() { $this->_helper->layout()->setLayout('administration'); $this->_auth = Zend_Auth::getInstance(); if (!$this->_auth->hasIdentity()) { $this->_redirect('/administracja/logowanie'); } else { $this->_model['users'] = new Users(); $this->user = $this->_model['users']->getUserInfo($this->_auth->getIdentity()); $this->view->user = $this->user; } } public function getForm() { $form = new Zend_Form(); $form->setAction('/administracja/uzytkownicy/zatwierdz') ->setMethod('get'); $form->addElement($username) ->addElement($password) return $form; } public function saveAction() { $form = $this->getForm(); $values = $form->getValues(); if (!$form->isValid($_POST)) { } else { } } public function editAction() { $user = $this->_model['users']->find($this->getRequest()->getParam('nick'))->current(); $this->view->user = $user; $form = $this->getForm(); $this->view->form = $form->render(); } } ?>
/administracja/uzytkownicy/zatwierdz - akcja save usercontrollera.
3. Po wysłaniu formularza z UserController efekt jest... o taki:
Kod
Array ( [login] => [password] => [zaloguj] => )
A na zakończenie, niczym prostak czekający aż ktoś zrobi coś za niego:
Liczę na szybką odpowiedź.