找不到Zend 2模型类

时间:2015-07-15 20:55:33

标签: php zend-framework

我正在学习框架Zend 2.我遇到了一个错误,即系统无法找到模型类。在这下面的消息。

  

致命错误:类'相册\型号\相册'在第47行的/Applications/MAMP/htdocs/zend2_tut/module/Album/Module.php中找不到

我使用的代码来自zend 2的教程。

代码如下:

Module.php

namespace Album;

// Models
use Album\Model\Album;
use Album\Model\AlbumTable;

// Db
use Zend\Db\ResultSet\ResultSet;
use Zend\Db\TableGateway\TableGateway;

// Zend
use Zend\ModuleManager\Feature\AutoloaderProviderInterface;
use Zend\ModuleManager\Feature\ConfigProviderInterface;

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

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

    public function getServiceConfig() {
        return array(
             'factories' => array(
                 'Album\Model\AlbumTable' =>  function($sm) {
                     $tableGateway = $sm->get('AlbumTableGateway');
                     $table = new AlbumTable($tableGateway);
                     return $table;
                 },
                 'AlbumTableGateway' => function ($sm) {
                     $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
                     $resultSetPrototype = new ResultSet();
                     $resultSetPrototype->setArrayObjectPrototype(new Album());
                     return new TableGateway('album', $dbAdapter, null, $resultSetPrototype);
                 },
             ),
         );
    }
}

Album.php

namespace Album\Model;

class Album
{
    public $id;
    public $artist;
    public $title;

    public function exchangeArray($data) {
        $this->id = (!empty($data["id"])) ? $data["id"] : null;
        $this->artist = (!empty($data["artist"])) ? $data["artist"] : null;
        $this->title = (!empty($data["title"])) ? $data["title"] : null;
    }
}

在文件树下面

模块

Album
      Model
      ------
            Album.php
      Module.php

我希望我能解决这个问题,因为我不知道问题出在哪里。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我认为在Module.php中你需要在下面做这个改变

 class Module implements AutoloaderProviderInterface, ConfigProviderInterface {

class Module {

您也无需将这些添加到链接

使用Zend \ ModuleManager \ Feature \ AutoloaderProviderInterface; 使用Zend \ ModuleManager \ Feature \ ConfigProviderInterface;

如果没有这些功能自动加载器库,您的模块将正常工作。