Я боролся с Zend_Navigation все выходные, и теперь у меня есть другая проблема, которая, как мне кажется, стала причиной многих моих проблем.
Я пытаюсь добавить Zend_Navigation в устаревшее приложение Zend Framework 1.7.6, я обновил библиотеку Zend до 1.9.0 и обновил загрузчик, чтобы разрешить это обновление библиотеки.
Проблема в том, что я не знаю как, и примеры показывают новый метод начальной загрузки, как добавить объект Navigation в представление, я пробовал это:
//initialise the application layouts with the MVC helpers
$layout = Zend_Layout::startMvc(array('layoutPath' => '../application/layouts'));
$view = $layout->getView();
$configNav = new Zend_Config_Xml('../application/config/navigation.xml', 'navigation');
$navigation = new Zend_Navigation($configNav);
$view->navigation($navigation);
$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
$viewRenderer->setView($view);
Кажется, что все проходит нормально, но когда я использую в своем макете помощник вида breadcrumb, он выдает ошибку: Строгие стандарты: создание объекта по умолчанию из пустого значения в C: \ www \ moobia \ development \ сайт \ приложение \ модули \ работодатели \ контроллеры \ IndexController.php в строке 27
Это вызвано следующим кодом в функции init () моего контроллера.
$uri = $this->_request->getPathInfo();
$activeNav = $this->view->navigation()->findByUri($uri); <- this is null when called
$activeNav->active = true;
Я полагаю, это потому, что объект Zend_Navigation отсутствует в представлении.
Я бы посмотрел на перенос начальной загрузки на текущий метод, но в настоящее время у меня заканчивается время для выпуска.
Спасибо
Grant