создать маршрут для моего внутреннего веб-сайта в zf3

у меня есть в модуле /config/module.config.php:

'router' => [
    'routes' => [
        'home-backend' => [
            'type' => Literal::class,
            'options' => [
                'route'    => '/backend',
                'defaults' => [
                    'controller' => Controller\IndexController::class,
                    'action'     => 'index',
                ],
            ],
        ],
        'backend' => [
            'type' => Segment::class,
            'options' => [
                'route'    => '/backend[/:controller[/:action]]',
                'defaults' => [
                    'controller' => Controller\IndexController::class,
                    'action'     => 'index',
                ],
            ],
            'may_terminate' => true,
            'child_routes' => [
                'wildcard' => [
                    'type' => 'Wildcard'
                ]
            ]
        ],  
    ],
],

когда я звоню: http://mysite/backend/index/index ошибка: страница не найдена. Запрошенный контроллер не может быть сопоставлен с существующим классом контроллера.

Контроллер: индекс (разрешает неверный класс контроллера или псевдоним: индекс)

что проблема??


person Zaman Rezaei    schedule 23.06.2017    source источник


Ответы (2)


Кажется, вы пропустили настройку для controller. Добавьте конфигурацию контроллера в module/config/module.config.php.

Если вы используете factory, конфигурация будет такой.

'controllers' => [
    'factories' => [
        Controller\IndexController::class => Controller\IndexControllerFactory::class,
    ]
],

Если вы не используете factory, конфигурация будет такой

use Zend\ServiceManager\Factory\InvokableFactory;

return [
    'controllers' => [
        'factories' => [
            Controller\IndexController::class => InvokableFactory::class,
        ]
    ],
]
person Dolly Aswin    schedule 23.06.2017

Обратите внимание, что вы не должны использовать один и тот же маршрут дважды. Здесь я вижу, что /backend используется дважды. В противном случае шаблон маршрута для маршрута backend имеет неправильный формат.

Надеюсь, вы поймете здесь лучше!

person unclexo    schedule 23.06.2017