Я следую учебнику Zend Framework 3 по скелету книги.
Сначала я заработал модуль приложения, где он показывает стандартный экран приветствия zend.
Когда я добавил модуль альбома, все пошло нормально. Когда я перехожу к /album в своем URL-адресе, он отображает раздел альбома, так что все в порядке. Однако, когда я удаляю /album из конца URL-адреса, чтобы вернуться в раздел приложения, я получаю следующую страницу 404.
**A 404 error occurred**
Page not found.
The requested controller could not be mapped to an existing controller class.
Controller:
ApplicationController (resolves to invalid controller class or alias:
ApplicationController)
No Exception available
Я бы показал некоторые разделы своего кода, но в данный момент я не уверен, какой файл может быть причиной этого. Если кто-то может сказать мне, какой файл конфигурации вызывает эту проблему, я могу загрузить его. Я почти уверен, что это маршрутизация, но исходя из ZF1, это что-то вроде головной боли.
Если кто-то может помочь или объяснить мне, где искать, я был бы очень благодарен.
ОБНОВЛЕНИЕ Ниже приведен мой module.config.php для моего модуля приложения.
<?php
/**
* @link http://github.com/zendframework/ZendAlbumApplication for the canonical source repository
* @copyright Copyright (c) 2005-2016 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
namespace Application;
use Zend\Router\Http\Literal;
use Zend\Router\Http\Segment;
use Zend\ServiceManager\Factory\InvokableFactory;
return [
'router' => [
'routes' => [
'home' => [
'type' => Literal::class,
'options' => [
'route' => '/',
'defaults' => [
'controller' => \ApplicationController::class,
'action' => 'index',
],
],
],
'application' => [
'type' => Segment::class,
'options' => [
'route' => '/application[/:action]',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'index',
],
],
],
],
],
'controllers' => [
'factories' => [
Controller\IndexController::class => InvokableFactory::class,
],
],
'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',
'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',
'error/404' => __DIR__ . '/../view/error/404.phtml',
'error/index' => __DIR__ . '/../view/error/index.phtml',
],
'template_path_stack' => [
__DIR__ . '/../view',
],
],
];
?>
ОБНОВЛЕНИЕ 2 Когда я заменяю /album на /application в URL-адресе, отображается страница приветствия каркаса Zend Framework. Я думал, что эта страница будет отображаться только с http://localhost? Я упускаю смысл или могу сделать модуль приложения модулем по умолчанию, чтобы вам не нужно было добавлять /application в конец URL-адреса?