ZF3: действие и вид не найдены

В моем приложении я создал второе действие в контроллере. Когда я вызываю приложение с URL Http: //local.domain У меня есть правильная страница, поэтому она называется правильным контроллером. Но если я хочу сделать этот звонок Http: //local.domain/liga-futbol-1 это не работает, и у меня есть эта ошибка:

Произошла ошибка 404 Страница не найдена. Запрашиваемый URL не может быть
соответствует маршрутизации.

Исключение не доступно

IndexController.php

namespace Stats\Controller;

use Zend\Mvc\Controller\AbstractActionController;

class IndexController extends AbstractActionController {
public function indexAction()
{
//This action serves the page
return [];
}

public function ligaFubtol1Action(){

return [];
} }

module.config.php

namespace Stats;

use Zend\Router\Http\Segment;
use Zend\ServiceManager\Factory\InvokableFactory;

return [
'controllers' => [
'factories' => [
Controller\IndexController::class => InvokableFactory::class,
],
],
'router' => [
'routes' => [
'home' => [
'type'    => 'Literal',
'options' => [
// This works!!! => http://local.domain
'route'    => '/',
'defaults' => [
'controller'    => Controller\IndexController::class,
'action'        => 'index',
],
],
'may_terminate' => true,
'child_routes' => [
// This doesn't work!!! http://local.domain/liga-futbol-1
'liga-futbol-1' =>  [
'type'  =>  Segment::class,
'options'   =>  [
'route' =>  '/liga-futbol-1',
'defaults'  =>  [
'controller'    => Controller\IndexController::class,
'action'        =>  'ligaFutbol1'
],
],
'may_terminate' =>  true,
'child_routes'  =>  [
],
],
],
],
],
],
'view_manager' => [
'display_not_found_reason' => true,
'display_exceptions'       => true,
'doctype'                  => 'HTML5',
'not_found_template'       => 'error/404',
'exception_template'       => 'error/index',
'template_map' => [
'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
'stats/index/index'       => __DIR__ . '/../view/stats/index/index.phtml',
'error/404'               => __DIR__ . '/../view/error/404.phtml',
'error/index'             => __DIR__ . '/../view/error/index.phtml',
],
'template_path_stack' => [
__DIR__ . '/../view',
],
/*
* Con este array de parámetros permitimos enviar datos y no mostrar vista
*/
'strategies' => [
'ViewJsonStrategy',
],
],
];

Справочники:

введите описание изображения здесь

Я проверил мой кеш в «/ dir_project / data / cache» и там ничего нет.

Что я делаю неправильно?

1

Решение

Посмотрите на route вариант home маршрут: он установлен в /, liga-futbol-1 маршрут является дочерним маршрутом home маршрут, поэтому его URL является «суммой»:

  • home URL: /
  • liga-futbol-1 URL: /liga-futbol-1

В результате: //liga-futbol-1 URL-адрес home/liga-futbol-1 маршрут.

Если вы хотите что-то вроде /liga-futbol-1Есть два решения:

  1. Сделать liga-futbol-1 маршрут не зависит от home маршрут (т.е. не его ребенок):

    'routes' => [
    'home' => [
    'type' => Literal::class,
    'options' => [
    'route' => '/',
    'defaults' => [
    'controller' => Controller\IndexController::class,
    'action'     => 'index'
    ]
    ]
    ],
    'liga-futbol-1' => [
    'type' =>  Segment::class,
    'options' =>  [
    'route' => '/liga-futbol-1',
    'defaults' =>  [
    'controller' => Controller\IndexController::class,
    'action'     => 'ligaFutbol1'
    ]
    ]
    ]
    ]
    
  2. Удалить / с начала liga-futbol-1«s route опция:

    'liga-futbol-1' =>  [
    'type' =>  Segment::class,
    'options' => [
    'route' => 'liga-futbol-1',
    'defaults' => [
    'controller' => Controller\IndexController::class,
    'action'     => 'ligaFutbol1'
    ]
    ]
    ]
    
3

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

Других решений пока нет …

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