Я сделал навигацию в Zend Framework 2, используя глобальный файл, расположенный в config/autoload
. как я могу получить в этом глобальном файле параметры маршрута?Zend Framework 2: Динамическая навигация и сухари
Я попытался это:
$helper = new Zend\View\Helper\ServerUrl();
$active_url = $helper->getHost();
но это возвращает весь URL. Для exemle У меня есть URL-адрес, как этот
www.mysite.com/controller/action/id/3
мне нужно знать идентификатор.
Мой глобальный файл возвращает массив навигации, который выглядит следующим образом:
return array(
'navigation' => array(
'default' => array(
array(
'label' => 'Home',
'route' => 'admin',
'active' => true,
'resource' => 'Admin\Controller\Index',
'privilege' => 'index',
'pages' => array(
'label' => 'My posts ',
'route' => 'admin/default',
'params' => array(
'controller' => 'posts',
'action' => 'edit'
),
'resource' => 'Admin\Controller\Posts',
'privilege' => 'edit',
),
)
)
)
);
Это все работает прекрасно, пока маршрут не содержит параметров. Если в моем URL-адресе содержатся параметры идентификатора, моя ссылка на меню и панировочные сухари формируются только с контроллером и действием без идентификатора и в том же.
Таким образом, вместо того, чтобы:
www.mysite.com/posts/edit/id/12
Моя ссылка выглядит следующим образом:
www.mysite.com/posts/edit
Почему вы хотите это сделать? Глобальные и локальные файлы в папке 'config/autoload' должны ** ** использоваться ** только для объявления констант, а не для динамического содержимого. Если вы сделаете это, у вас возникнут проблемы. Трудно дать альтернативное решение, если вы не добавите более подробную информацию о том, что именно вы пытаетесь достичь ... – Wilt
Конфигурация загружается до того, как произойдет маршрутизация. Вы не сможете это сделать. –
@Wilt Я отредактировал мое сообщение. – Andreea