유연한 사이드 바 포함 및 로그인 양식 (Zend_Form) 및 다양한 모듈/컨트롤러 관련 링크를 만드는 방법을 알아낼 수 없습니다.젠드 양식을 사용하여 모든 페이지에 로그인 양식 표시
가장 일반적인 솔루션을 사용하고있는 것으로 보인다
echo $this->action('login', 'authentication', 'default');
을하지만 apperently이는 '가장 좋은'방법을 밤은? 나는이 apprently dispatchloop을 트리거하고 성능에 타격을 읽는 읽었어요?
나는 약 사이드 바에 대한 View_Helper 노래를 생각했습니다 내가 행동이 설정이 내 Form_Login에서
class Zend_View_Helper_Sidebar extends Zend_View_Helper_Abstract
{
public function sidebar()
{
$sidebar = $this->view->placeholder('sidebar');
$sidebar->setPrefix('<div class="sidebar-element">')
->setSeparator('</div><div class="sidebar-element">')
->setPostfix('</div>');
$sidebar->append(new Form_Login);
$sidebar->append(new Model_Category->getList());
return $sidebar
}
}
을/인증 다음 코드 포함/로그인 : 경우
public function loginAction()
{
$request = $this->getRequest();
if($request->isPost()) {
$form = new Form_Login();
$data = $request->getPost();
if($form->isValid($data)) {
$username = $form->getValue('username');
$password = $form->getValue('password');
$users = new Model_DbTable_Users();
$authenticated = $users->login($username, $password);
if($authenticated) {
//Succes - show identity instead of loginForm
} else {
$this->view->loginForm = $form;
$this->render('/index');
}
}
}
}
를 I 잘못된 사용자 이름/암호를 제공하면 현재 비어있는 indexAction이 렌더링됩니다. 이건 괜찮아. 또한 필요에 따라 loginForm이 포함 된 사이드 바를 렌더링하지만 양식은 비어 있습니다 (사용자 입력이 표시되지 않으며 양식이 유효성을 검사하지 못했다는 메시지도 표시되지 않음).
양식의 사용자 이름 필드는 사용자가 제출하기 전에 입력 한 내용을 표시해야합니다. 그리고 오류 메시지가 표시되어야합니다.
이것이 왜 잡아 두지 않는지에 대한 도움은 대단히 만족 스럽습니다.