Zend Framework 3骨架两个模块

时间:2017-09-18 20:24:05

标签: zend-framework module zend-framework3

我遵循本书的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的末尾了吗?

1 个答案:

答案 0 :(得分:0)

我已经完成了。这似乎是一个新的错误/错字。

我不得不换行:

&#39;控制器&#39; =&GT; \ ApplicationController中::类,

TO

&#39;控制器&#39; =&GT;控制器\的IndexController ::类,

感谢您指出我正确的方向并告诉我要上传的代码页。