3

我是 Zend Framework 2 的新手。我创建了文件夹结构并粘贴了此页面http://framework.zend.com/manual/2.0/en/user-guide/routing-and-controllers.html中的代码片段Zend Framework 2 中的路由。

我收到以下错误:

( ! ) Fatal error: Class 'Album\Controller\AlbumController' not found in C:\wamp\www\zend\vendor\zendframework\zendframework\library\Zend\ServiceManager\AbstractPluginManager.php on line 178

下面是我的classmap_autoload.php

<?php 
return array();

下面是 Module.php

namespace Album;

class Module {
    public function getAutoloaderConfig(){
        return array(
            'Zend\Loader\ClassMapAutoloader' => array(
                __DIR__.'/autoload_classmap.php',
            ),
            'Zend\Loader\StandardAutoloader' => array(
                'namespace' => array(
                    __NAMESPACE__ => __DIR__.'/src/'.__NAMESPACE__,
                ),
            ),
        );
    }

    public function getConfig(){
        return include __DIR__.'/config/module.config.php';
    }

}

我的AlbumController班级已经在module/Album/ 在此处输入图像描述

这是我module.config.php的专辑模块:

<?php 

return array(
    'controllers' => array(
        'invokables' => array(
            'Album\Controller\Album' => 'Album\Controller\AlbumController',
        ),
    ),

     // The following section is new and should be added to your file
    'router' => array(
        'routes' => array(
            'album' => array(
                'type'    => 'segment',
                'options' => array(
                    'route'    => '/album[/:action][/:id]',
                    'constraints' => array(
                        'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                        'id'     => '[0-9]+',
                    ),
                    'defaults' => array(
                        'controller' => 'Album\Controller\Album',
                        'action'     => 'index',
                    ),
                ),
            ),
        ),
    ),

    'view_manager' => array(
        'template_path_stack' => array(
            'album' => __DIR__ . '/../view',
        ),
    ),
);

专辑控制器.php

<?php


namespace Album\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class AlbumController extends AbstractActionController
{
    public function indexAction()
    {
    }

    public function addAction()
    {
    }

    public function editAction()
    {
    }

    public function deleteAction()
    {
    }
}

我不知道为什么会出现这样的错误。我想在渲染页面之前了解 Zend 内部发生了什么,但在我打算解决这个问题之前。我该如何解决这个问题?

4

2 回答 2

11

在 Module.php 中'namespace' => array必须是namespaces(复数形式)

您也可以将您的代码与https://github.com/zendframework/zf2-tutorial进行比较

于 2013-02-02T14:54:28.193 回答
0

我目前正在玩教程和综合学说使用。上述问题可能会出现在“命名空间”中,可能是在调用 composer 进行更新之后,因为 ActionController 的名称似乎神奇地更改为AbstractActionController.

没有警告。

编辑 我在检查后意识到学说代码已过时,因此通过粘贴替换,控制器名称已过时。

于 2013-10-01T18:53:26.217 回答