Маршрутизатор в порядке, он работает через адресную строку. Маршрутизатор в порядке, если я повторяю URL-адрес. Приложение перестает работать, если я повторяю $ this-> url ('routename')
Ребята, это роутер:
'ownedGoods' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/owned',
'defaults' => array(
'controller' => 'index\index',
'action' => 'indexOwned'
)
)
),
это вызывается для контроллеров
'index\index' => 'AddGoods\Controller\IndexController',
Теперь, когда я открываю URL: http://goodsApp.localhost:88/owned, это работает
Проблема возникла, когда я разместил другие ссылки на панели навигации, где, как и другие ссылки, такие как «Добавить товары» и «Дом», работают, а принадлежащие - нет.
<li class="active"><a href="<?php echo $this->url('home') ?>"><?php echo $this->translate('Home') ?></a></li>
<li class="active"><a href="<?php echo $this->url('add') ?>"><?php echo $this->translate('Add a good') ?></a></li>
<li class="active"><a href="<?php echo $this->url('owned') ?>"><?php echo $this->translate('My Goods') ?></a></li>
Приложение не запущено, контроллер и маршрут не совпадают. Даже не для домашней страницы, это показывает
Неперехваченное исключение «Zend \ Mvc \ Router \ Exception \ RuntimeException» с сообщением «Маршрут с именем« принадлежащий »не найден» в пути \ к \ app \ vendor \ zendframework \ zendframework \ library \ Zend \ Mvc \ Router \ Http \ TreeRouteStack. php: 313 Трассировка стека: # 0 путь \ к \ app \ vendor \ zendframework \ zendframework \ library \ Zend \ View \ Helper \ Url.php (100): Zend \ Mvc \ Router \ Http \ TreeRouteStack-> build (Array, Массив) # 1 [внутренняя функция]: Zend \ View \ Helper \ Url -> __ invoke ('own') # 2 # 2 путь \ к \ app \ vendor \ zendframework \ zendframework \ library \ Zend \ View \ Renderer \ PhpRenderer. php (400): call_user_func_array (Object (Zend \ View \ Helper \ Url), Array) # 3 путь \ к \ app \ module \ Application \ view \ layout \ layout.phtml (48): Zend \ View \ Renderer \ PhpRenderer -> __ call ('url', Array) # 4 путь \ к \ app \ module \ Application \ view \ layout \ layout.phtml (48): Zend \ View \ Renderer \ PhpRenderer-> url ('own') в пути \ to \ app \ vendor \ zendframework \ zendframework \ library \ Zend \ Mvc \ Router \ Http \ TreeRouteStack.php в строке 313
Но если я удалю ссылку на навигационную панель (последний тег li) из навигации, она снова заработает. Даже если вместо this-> url ('own') я просто эхо "владел", он все равно работает.
Проблема в том, что только когда я повторяю this-> url ('own') в панели навигации, он перестает работать и выдает исключение. Он работает, если я использую маршрут по адресной строке или любым другим способом, например, эхом «принадлежит» на панели навигации.
Если у вас есть еще вопросы, задавайте мне их.