Zend Framework 2 中,定制error 的layout
Zend Framework 2 中,定制error 的layout
chinaweilu 发表于4年前
Zend Framework 2 中,定制error 的layout
  • 发表于 4年前
  • 阅读 47
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】买域名送云解析+SSL证书+建站!>>>   

摘要: 404页面在我们平常浏览网页的时候并不会经常碰到,也因此很容易被忽略,在Zend Framework 2中,项目的结构已经默认提供了404 页面,包括样式等等。但是有时,我们需要定制符合自己网站的404 页面样式时,该怎么办呢?

404页面在我们平常浏览网页的时候并不会经常碰到,也因此很容易被忽略,在Zend Framework 2中,项目的结构已经默认提供了404 页面,包括样式等等。但是有时,我们需要定制符合自己网站的404 页面样式时,该怎么办呢?

其实非常简单,编辑错误页面的layout ,例如errorlayout

module.config.php

'view_manager' => array (
        'display_not_found_reason' => true,
        'display_exceptions' => true,
        'doctype' => 'HTML5',
        'not_found_template' => 'error/404',
        'exception_template' => 'error/index',
        'template_path_stack' => array (
            __DIR__ . '/../view' 
        ),
        'template_map' => array (
            'error/404' => __DIR__ . '/../view/error/404.phtml',
            'error/index' => __DIR__ . '/../view/error/index.phtml',
            'error/layout'=> __DIR__ . '/../view/layout/error_layout.phtml' 
        ) 
    ),

module.php

class Module
{
    public function onBootstrap(MvcEvent $e)
    {
        $e->getApplication()->getServiceManager()->get('translator');
        $eventManager        = $e->getApplication()->getEventManager();
        $moduleRouteListener = new ModuleRouteListener();
        $moduleRouteListener->attach($eventManager);
        $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR,array($this,'onDispatchError'),100);
    }
    function onDispatchError(MvcEvent $e) {
        
        $vm = $e->getViewModel();
        $vm->setTemplate('error/layout');
        
    }
}

这个方式,解决由于路由问题导致的错误。

如果在controller > action 中进入错误页面,则非常简单,调用下面的方法:

$this->notFoundAction();


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 5
码字总数 2035
×
chinaweilu
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: