2016-12-05 6 views
1

ZF3을 사용하고 있으며 오류 페이지의 레이아웃을 변경해야합니다. 그들은 응용 프로그램 modules.config 파일에 다음과 같은 구성에 의해 호출됩니다modules.config에서 구성된 오류 페이지의 레이아웃을 변경하는 방법은 무엇입니까?

'view_manager' => [ 
     'display_not_found_reason' => true, 
     'display_exceptions'  => true, 
     'doctype'     => 'HTML5', 
     'not_found_template'  => 'error/404', 
     'exception_template'  => 'error/index', 
     'template_map' => [ 
      'layout/layout'   => __DIR__ . '/../view/layout/layout.phtml', 
      'application/index/index' => __DIR__ . '/../view/application/index/index.phtml', 
      'error/404'    => __DIR__ . '/../view/error/404.phtml', 
      'error/index'    => __DIR__ . '/../view/error/index.phtml', 
     ], 
     'template_path_stack' => [ 
      __DIR__ . '/../view', 
     ], 
    ], 

가 어떻게 404.phtmlindex.phtml 페이지에 특정 레이아웃을 설정할 수 있습니까? 당신이 특정 작업에 대한 특정 레이아웃을 원하는 경우

답변

3

, 당신은 컨트롤러에서 사용할 수 있습니다 : 당신이 컨트롤러의 모든 작업이 동일한 레이아웃을 원하는 경우, 컨트롤러가 AbstractActionController 및 재정을 상속 할 수

$this->layout()->setTemplate('layout/anOtherLayout'); 

onDispatch() 방법 : 당신이 경로 (404)이 존재하는지 확인하고 특정 레이아웃을하지 않을 경우 설정할 수

class IndexController extends AbstractActionController 
{ 
    public function onDispatch(MvcEvent $e) 
    { 
     // Call the base class onDispatch() first and grab the response 
     $response = parent::onDispatch($e);   

     $this->layout()->setTemplate('layout/layout2');     
     // Return the response 
     return $response; 
    } 
} 

동일한 논리는 당신의 Module.php에서 사용할 수 있습니다.