我遵循本书的zend framework 3骨架教程。
我首先让应用程序模块工作,它显示了对zend屏幕的标准欢迎。
当我添加相册模块时,一切都很顺利。当我导航到我的网址中的/ album时,它会显示相册部分,所以那里都很好。但是,当我从url的末尾删除/ album以返回应用程序部分时,我得到以下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,这有点令人头疼。
如果有人可以帮助或向我解释在哪里看,我会非常感激。
更新 下面是我的Application模块的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 当我用url中的/ application替换/ album时,它显示了骨架zend框架欢迎页面。我认为这个页面只显示http://localhost?我是否忽略了这一点,或者我可以将应用程序模块作为默认模块,这样您就不必将/应用程序添加到URL的末尾了吗?
答案 0 :(得分:0)
我已经完成了。这似乎是一个新的错误/错字。
我不得不换行:
&#39;控制器&#39; =&GT; \ ApplicationController中::类,
TO
&#39;控制器&#39; =&GT;控制器\的IndexController ::类,
感谢您指出我正确的方向并告诉我要上传的代码页。