zend framework2 - 第二个导航不注入 ACL



我有一个带有管理区域的应用程序,需要与主站点分开的导航菜单,我还需要注入 ACL 以防止管理员用户看到某些菜单项。

我创建了一个管理员导航工厂。

namespace FreedomZendNavigationService;
use ZendNavigationServiceDefaultNavigationFactory;
class AdminNavigationFactory extends DefaultNavigationFactory
{
    protected function getName()
    {
            return 'admin_navigation';
    }
}

并将其添加到服务管理器

'service_manager' => array(
        'factories' => array(
            'admin_navigation' => 'FreedomZendNavigationServiceAdminNavigationFactory'
        ),
    ),

这一切都工作正常,我可以看到菜单,问题是当我尝试注入ACL时。在我的管理模块中.php我有

public function getViewHelperConfig()
    {
        return array(
            'factories' => array(
                'admin_navigation' => function(HelperPluginManager $pluginManager) {
                    $serviceManager = $pluginManager->getServiceLocator();
                    $acl = new Acl();
                    $auth = $serviceManager->get('ZendAuthenticationAuthenticationService');
                    $role = $acl::DEFAULT_ROLE;
                    if ($auth->hasIdentity()) {
                        $user = $auth->getIdentity();
                        $role = $user->getUserRole()->getRole();
                    }
                    $navigation = $pluginManager->get('ZendViewHelperNavigation');
                    $navigation->setAcl($acl)->setRole($role);
                    return $navigation;
                }
            )
        );
    }

但是,不会调用上面的admin_navigation函数。 在我的应用程序模块的默认导航中,我有几乎相同的代码,并且该函数被调用为 ok。

有谁知道为什么不调用admin_navigation函数?

提前非常感谢。

我在 https://www.youtube.com/watch?v=6U_lERLu4Ys 的Stoyan Cheresharov的帮助下弄清楚了。 admin_navigation应该只是导航。

相关内容

  • 没有找到相关文章