Zend: создание навигации навигации с использованием Zend_Config_Xml и Zend_Navigation - PullRequest
0 голосов
/ 17 декабря 2009

У меня проблема, возникает исключение, когда Zend_Navigation вызывается для экземпляра Zend_Config_Xml.

Вот метод, в котором это терпит неудачу в (Bootstrap.php):

protected function _initNavigation() {
$this->bootstrap('layout');
$layout = $this->getResource('layout');
$view = $layout->getView();
$config = new Zend_Config_Xml( APPLICATION_PATH . '/configs/navigation.xml' );
$navigation = new Zend_Navigation( $config ); // exception is thrown here
$view->navigation( $navigation );
}

Анализируемый XML-файл является ТОЛЬКО копией примера 37.11 @ http://framework.zend.com/manual/en/zend.navigation.containers.html

Выдается ошибка:

  • Неустранимая ошибка: необработанное исключение «Zend_Navigation_Exception» с сообщением «Неверный аргумент: невозможно определить класс для создания экземпляра» в /usr/share/php/Zend/Navigation/Page.php:223 Трассировка стека: # 0 / usr / share /php/Zend/Navigation/Container.php(117): Zend_Navigation_Page :: factory (Array) # 1 /usr/share/php/Zend/Navigation/Container.php(164): Zend_Navigation_Container-> addPage (Array) # 2 /usr/share/php/Zend/Navigation.php(46): Zend_Navigation_Container-> addPages (Object (Zend_Config_Xml)) # 3 /www/padilla/application/Bootstrap.php(50): Zend_Navigation -> __ construct (Object_ Zeml_Conf )) # 4 /usr/share/php/Zend/Application/Bootstrap/BootstrapAbstract.php(662): Bootstrap -> _ initNavigation () # 5 /usr/share/php/Zend/Application/Bootstrap/BootstrapAbstract.php66 ): Zend_Application_Bootstrap_BootstrapAbstract -> _ executeResource ('навигация') # 6 /usr/share/php/Zend/Application/Bootstrap/BootstrapAbstract.php(579): Zend_Application_Bootstrap_Boots / ustra_trap): загрузки / загрузки nd / Application.php (347): Zend_Application_B в /usr/share/php/Zend/Navigation/Page.php в строке 223

Возможно, я что-то упустил, или нужно изменить / настроить структуру xml?

1 Ответ

4 голосов
/ 17 декабря 2009

Ваш экземпляр Zend_Config_Xml отличается от примера. Вы забыли указать раздел в качестве второго параметра.

$config = new Zend_Config_Xml( APPLICATION_PATH . '/configs/navigation.xml', 'nav' );

Если вы добавите туда бит , 'nav', предполагая, что ваш xml точно такой же, как в ссылке, он должен работать.

...