Дочерние маршруты ZF2 не работают

У меня есть простой конфиг и контроллер в модуле Блог:

module.config.php:

return array(
'controllers'=>array(
'invokables'=>array(
'Blog\Controller\Blog'=>'Blog\Controller\BlogController',
),
),
'router'=>array(
'routes'=>array(
'blog'=>array(
'type'=>'literal',
'options'=>array(
'route'=>'/blog',
'defaults'=>array(
'controller'=>'Blog\Controller\Blog',
'action'=>'index',
),
),
'may_terminate'=>true,
'child_routes'=>array(
'rss'=>array(
'type'=>'literal',
'options' => array(
'route'=>'/rss',
'defaults'=>array(
'action'=>'rss',
),
),
),
)
)
)
),
);

BlogController.php:

namespace Blog\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class BlogController extends AbstractActionController
{
public function indexAction(){
return new ViewModel(array());
}

public function rssAction(){
return new ViewModel(array());
}
}

маршрут / блог работает правильно,

но / Блог / Новости — не работает

Ответ Zend Framework 2 с сообщением об ошибке:

Произошла ошибка 404
Страница не найдена.
Запрошенный контроллер не смог отправить запрос.
контроллер:
Блог \ Controller \ Блог
Исключение не доступно

В чем дело?
Заранее спасибо.

1

Решение

У вас нет may_terminate установлен в true в маршруте `blog / rss ‘, как вы делаете в его родителе.

0

Другие решения

Проблема в matchedRouteName.

С child_routes

protected ‘matchedRouteName’ => строка ‘blog / rss’ (length = 8),

без child_routes

protected ‘matchedRouteName’ => строка ‘blog’ (длина = 4)

Он генерирует ошибку в моем тракте обработки и перенаправляет на страницу 404 при попытке доступа / blog / rss.

0

По вопросам рекламы [email protected]