ZF2 - Get controller name into layout/views

前端 未结 9 1563
逝去的感伤
逝去的感伤 2020-11-30 07:03

I know with ZF1 you would retrieve the module/controller name using custom View Helpers that would get the singleton frontController object and get the name there.

U

9条回答
  •  暖寄归人
    2020-11-30 07:39

    This would be a solution I got to work with zf2 beta5

    module/MyModule/Module.php

    namespace MyModule;
    
    use Zend\Mvc\ModuleRouteListener;
    use MyModule\View\Helper as MyViewHelper;
    
    class Module
    {
        public function onBootstrap($e)
        {
            $app = $e->getApplication();
            $serviceManager = $app->getServiceManager();
    
            $serviceManager->get('viewhelpermanager')->setFactory('myviewalias', function($sm) use ($e) {
                return new MyViewHelper($e->getRouteMatch());
            });
        }
        ...
    }
    

    module/MyModule/src/MyModule/View/Helper.php

    namespace MyModule\View;
    
    use Zend\View\Helper\AbstractHelper;
    
    class Helper extends AbstractHelper
    {
    
        protected $route;
    
        public function __construct($route)
        {
            $this->route = $route;
        }
    
        public function echoController()
        {
            $controller = $this->route->getParam('controller', 'index');
            echo $controller;
        }
    }
    

    In any viewfile

    $this->myviewalias()->echoController();
    

提交回复
热议问题