2012-12-10 4 views

답변

4

단지 등의 EVENT_RENDER 이벤트를 첨부 개의 EventManager에 의해 ZF2에있는 모든 레이아웃에 대한 변수를 설정하는 정말 간단하다 :

레이아웃 사용보기 위해
class Module 
{ 
    public function onBootstrap($e) 
    { 
     $app = $e->getParam('application'); 
     $app->getEventManager()->attach(MvcEvent::EVENT_RENDER, array($this, 'setFormToView'), 100); 
    } 

    public function setFormToView($event) 
    { 
     $form = new MyForm(); 
     $viewModel = $event->getViewModel(); 
     $viewModel->setVariables(array(
      'form' => $form, 
     )); 
    } 
} 
+0

네, 간단합니다! .. :) 고맙습니다. – directory

+0

'form'이 layout.phtml에 있지 않지만 부분적으로 배치 된 경우'$ form = $ this-> layout() -> form; '으로 액세스 할 수 있습니다. –

+0

해당 양식을 확장 할 수 있습니까? 컨트롤러에? 일부 컨트롤러에서는 일부 입력을 추가하고 다른 컨트롤러에서는 일부 선택 등을 추가하려고합니다. – Maciej

0

:

enter code here 
    if ($user = $this->identity()) { 
     echo 'Login with user' . $this->escapeHtml($user->nome); 
     ?> 
     | <a href="<?php echo $this->url('auth/default', array('controller' => 'index', 'action' => 'logout'));?>"><?php echo $this->translate('Sair'); ?></a> 
    <?php 
    } else { 

     echo $this->form()->openTag($form); 
     echo "<h5>Forneça seu login e senha </h5>"; 
     echo $this->formRow($form->get('username')); 
     echo $this->formRow($form->get('password')); 
     echo $this->formRow($form->get('rememberme')); 
     echo $this->formSubmit($form->get('submit')); 
     echo $this->form()->closeTag(); 
    } 
관련 문제