У меня есть приложение с областью администратора, для которой требуется отдельное меню навигации с основного сайта, мне также нужно ввести ACL, чтобы администратор не мог видеть определенные пункты меню.Вторая навигация не впрыскивает ACL
Я создал административную навигационную фабрику.
namespace Freedom\Zend\Navigation\Service;
use Zend\Navigation\Service\DefaultNavigationFactory;
class AdminNavigationFactory extends DefaultNavigationFactory
{
protected function getName()
{
return 'admin_navigation';
}
}
и добавить его к менеджеру службы
'service_manager' => array(
'factories' => array(
'admin_navigation' => 'Freedom\Zend\Navigation\Service\AdminNavigationFactory'
),
),
Это все работает отлично, и я могу увидеть меню, проблема в том, когда я пытаюсь привнести ACL. В моем admin module.php у меня есть
public function getViewHelperConfig()
{
return array(
'factories' => array(
'admin_navigation' => function(HelperPluginManager $pluginManager) {
$serviceManager = $pluginManager->getServiceLocator();
$acl = new Acl();
$auth = $serviceManager->get('Zend\Authentication\AuthenticationService');
$role = $acl::DEFAULT_ROLE;
if ($auth->hasIdentity()) {
$user = $auth->getIdentity();
$role = $user->getUserRole()->getRole();
}
$navigation = $pluginManager->get('Zend\View\Helper\Navigation');
$navigation->setAcl($acl)->setRole($role);
return $navigation;
}
)
);
}
Однако функция admin_navigation выше не вызывается. В моей навигации по умолчанию в моем модуле приложения у меня почти идентичный код, и функция называется ok.
Кто-нибудь знает, почему функция admin_navigation не вызывается?
Большое спасибо заранее.