Zend навигация renderMenu в представлении
Я использую Zend Navigation для создания своих меню. Когда я использую $this->navigation( )
в моем скрипте макета меню отображается идеально. Но когда я пытаюсь отобразить то же самое меню с тем же кодом в сценарии представления, ничего не отображается.
Это код, который я использую в начальной загрузке, чтобы инициировать Zend_Navigation и присоединить его к скрипту макета:
protected function _initNavigation( )
{
$this->bootstrap( 'layout' );
$layout = $this->getResource( 'layout' );
$view = $layout->getView( );
$config = new Zend_Config_Xml( APPLICATION_PATH . '/configs/navigation.xml', 'nav' );
$navigation = new Zend_Navigation( $config );
$view->navigation( $navigation );
$view->addHelperPath( 'App/View/Helper/Navigation', 'App_View_Helper' );
}
Я некоторое время работал над этой проблемой и понял, что мне нужно добавить следующий код в мой загрузчик:
protected function initView( ) { }
Но мне интересно, почему мне нужно разместить этот бесполезный кусок кода. В соответствии с этой темой, я уже загружаю ресурс представления в моем application.ini, используя следующие строки:
resources.view.basePath = APPLICATION_PATH "/views"
resources.view.helperPath = APPLICATION_PATH "/views/helpers"
Заранее спасибо!
1 ответ
Вы можете удалить resources.view из ini с тем же эффектом, что и с пустым initView() в bootstrap: view не будет загружен
Я думаю, что угадаю, что происходит. где вы настраиваете навигацию?
upd: Почему вы используете такой странный способ получить экземпляр просмотра?
protected function _initNavigation( )
{
$this->bootstrap( 'view' );
$view = $this->getResource( 'view' );
///...
}
замените свой метод на
protected function _initNavigationPages( )
{
$this->bootstrap( 'navigation' );
$navigation = $this->getResource( 'navigation' );
$config = new Zend_Config_Xml( APPLICATION_PATH . '/configs/navigation.xml', 'nav' );
$navigation->addPages($config);
}
добавьте в конфигурацию "resources.navigation.storage.registry = true", если вы хотите, чтобы он был зарегистрирован в Zend_Registry под ключом "Zend_Navigation" или "resources.navigation [] =" для хранения в помощнике вида
просмотреть настройки вспомогательного пути / префикса перейти к просмотру конфигурации