我正在浏览位于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()
{
}
}
?>
答案 0 :(得分:1)
两种索引操作方法:
public function indexAction()
{
return new ViewModel(array(
'albums' => $this->getAlbumTable()->fetchAll(),
));
}
public function indexAction()
{
}