致命错误致命错误:无法重新声明

时间:2015-03-20 02:33:09

标签: php mysql zend-framework2 ubuntu-14.04

我正在浏览位于Introduction to Zend Framework 2的教程,并且直到我导航到 localhost / album 我才会收到错误

  

致命错误:无法在第27行的/var/www/project/testingpj/module/Album/src/Album/Controller/AlbumController.php中重新声明Album \ Controller \ AlbumController :: indexAction()   调用堆栈       时间记忆功能位置   1 0.0001 228936 {main}()../ index.php:0   2 0.0491 2160776 Zend \ Mvc \ Application-> run()../ index.php:17   3 0.0501 2174648 Zend \ EventManager \ EventManager-> trigger()../ Application.php:313   4 0.0501 2174648 Zend \ EventManager \ EventManager-> triggerListeners()../ EventManager.php:207   5 0.0503 2176408 call_user_func()../ EventManager.php:468   6 0.0503 2176976 Zend \ Mvc \ DispatchListener-> onDispatch()../ EventManager.php:468   7 0.0504 2177280 Zend \ Mvc \ Controller \ ControllerManager-> get()../ DispatchListener.php:96   8 0.0504 2177608 Zend \ ServiceManager \ AbstractPluginManager-> get()../ ControllerManager.php:137   9 0.0505 2177608 Zend \ ServiceManager \ ServiceManager-> get()../ AbstractPluginManager.php:103   10 0.0505 2178976 Zend \ ServiceManager \ ServiceManager-> create()../ ServiceManager.php:525   11 0.0505 2179264 Zend \ ServiceManager \ ServiceManager-> doCreate()../ ServiceManager.php:593   12 0.0506 2179456 Zend \ ServiceManager \ AbstractPluginManager-> createFromInvokable()../ ServiceManager.php:637   13 0.0506 2179504 class_exists()../ AbstractPluginManager.php:167   14 0.0506 2179816 spl_autoload_call()../ AbstractPluginManager.php:167   15 0.0506 2180328 Zend \ Loader \ StandardAutoloader-> autoload()../ AbstractPluginManager.php:0   16 0.0506 2180600 Zend \ Loader \ StandardAutoloader-> loadClass()../ StandardAutoloader.php:215

我搜索了所有内容,似乎无法找到问题。任何帮助都非常感谢。我是ZF的新手。

我在本地使用php5,apache2,Zend Framework 2.3在Ubuntu 14.04上运行它

如果您需要其他信息,请与我们联系。

这是我的代码: 的 Module.php

<?php
namespace Album;

 use Zend\ModuleManager\Feature\AutoloaderProviderInterface;
 use Zend\ModuleManager\Feature\ConfigProviderInterface;
 use Album\Model\Album;
 use Album\Model\AlbumTable;
 use Zend\Db\ResultSet\ResultSet;
 use Zend\Db\TableGateway\TableGateway;

 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);
             },
             ),
         );
     }
}
?>

AlbumController.php

<?php
namespace Album\Controller;

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


     class AlbumController extends AbstractActionController
     {
             protected $albumTable;

             public function getAlbumTable()
             {
             if (!$this->albumTable) {
                 $sm = $this->getServiceLocator();
                 $this->albumTable = $sm->get('Album\Model\AlbumTable');
             }
             return $this->albumTable;
             }
             public function indexAction()
             {
             return new ViewModel(array(
                 'albums' => $this->getAlbumTable()->fetchAll(),
             ));
             }

             public function indexAction()
             {
             }

             public function addAction()
             {
             }

             public function editAction()
             {
             }

             public function deleteAction()
             {
             }

 }
?>

1 个答案:

答案 0 :(得分:1)

两种索引操作方法:

         public function indexAction()
         {
         return new ViewModel(array(
             'albums' => $this->getAlbumTable()->fetchAll(),
         ));
         }

         public function indexAction()
         {
         }
相关问题