zf2 BjyAuthorize Zfcuser с двумя разными базовыми макетами

#zend-framework2 #zfcuser #bjyauthorize #login-system

#zend-framework2 #zfcuser #bjyauthorize #система входа в систему

Вопрос:

У меня это проблема. В моем приложении ZF2 я управляю системой входа с помощью byjauthorize и zfcuser, и у меня есть два разных базовых макета. Один предназначен для страницы входа, а другой — для приложения, когда пользователь входит в систему. Это код в модуле приложения в module.config.php:

 'template_map' => array(
            'layout/login_layout'     => __DIR__ . '/../view/layout/login_layout.phtml',
            'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
  

Теперь модуль приложения всегда в Module.php я установил этот код:

 public function onBootstrap(MvcEvent $e)
    {
        $eventManager        = $e->getApplication()->getEventManager();
        $moduleRouteListener = new ModuleRouteListener();
        $moduleRouteListener->attach($eventManager);

        $application = $e->getTarget();

        // Change default layout if user is logged
        $sm = $application->getServiceManager();
        $auth = $sm->get('zfcuser_auth_service');

        if ($auth->hasIdentity()) {

            $eventManager->attach("dispatch", function($e) {
                $controller = $e->getTarget();

                $s_matchedRoute = $e->getParam('route-match')->getMatchedRouteName();

                    if ($s_matchedRoute === 'zfcuser/login') {

                        $controller->layout('layout/login_layout');

                    } else {

                        $controller->layout('layout/layout');
                    }
                });

                /*
                 * Check Admin ACL with BjyAuthorize:
                 * use RedirectionStrategy (that redirects to ZfcUser's login route by default)
                 */
                $strategy = new RedirectionStrategy();
                $strategy->setRedirectRoute('application/error');
                $e->getTarget()->getEventManager()->attach($strategy);

        } else {

            $eventManager->attach("dispatch", function($e) {
                $controller = $e->getTarget();
                $controller->layout('layout/login_layout');
            });

            $strategy = new RedirectionStrategy();
            $strategy->setRedirectRoute('zfcuser/login');
            $e->getTarget()->getEventManager()->attach($strategy);
        }

        /**
         * Format style login page
         */
        $this->layoutFormLogin($eventManager);

        // Setting function to handler error
        set_error_handler(array('ApplicationModule','handlePhpErrors'));
    }
  

Но когда значение $auth-> hasIdentity равно false, стратегия перенаправления не перенаправляет маршрут в zfcuser/login. Где ошибка? p.s мой application.config.php это:

      // 3rd part modules
    'DoctrineModule',
    'DoctrineORMModule',
    'ZendDeveloperTools',
    'ZfcBase',
    'ZfcUser',
    'ZfcUserDoctrineORM',
    'BjyAuthorize',
    'DOMPDFModule',
    'WebinoImageThumb',

    //My Module
    'Application',