В моем модуле module.config.php
У меня есть что-то вроде этого:
namespace Application;
return [
//...
// myroute1 will route to IndexController fooAction if the route is matching '/index/foo' but regardless of request method
'myroute1' => [
'type' => Zend\Router\Http\Literal::class,
'options' => [
'route' => '/index/foo',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'foo',
],
],
],
// myroute2 will route to IndexController fooAction if the route is request method is GET but regardless of requested route
'myroute2' => [
'type' => Zend\Router\Http\Method::class,
'options' => [
'verb' => 'get',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'foo',
],
],
],
//...
];
Чего я пытаюсь добиться:
Как этого добиться?
Попробуйте изменить литерал на Zend\Mvc\Router\Http\Part
маршрут, а затем положить маршруты HTTP как маршруты CHILD!
Посмотреть здесь https://docs.zendframework.com/zend-router/routing/#http-route-types
Записка для себя и всех, кто ищет, как дополнительную заметку к ответу @ delboy1978uk.
Ответ, который я искал, выглядит примерно так:
/index/foo
=> IndexController fooAction/index/foo
=> IndexController barActionТак что код в module.config.php
Файл может быть таким:
return [
//...
'myroute1' => [// The parent route will match the route "/index/foo"'type' => Zend\Router\Http\Literal::class,
'options' => [
'route' => '/index/foo',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'foo',
],
],
'may_terminate' => false,
'child_routes' => [
'myroute1get' => [// This child route will match GET request
'type' => Method::class,
'options' => [
'verb' => 'get',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'foo'
],
],
],
'myroute1post' => [// This child route will match POST request
'type' => Method::class,
'options' => [
'verb' => 'post',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'bar'
],
],
]
],
],
//...
];