我想用不同的表创建两个控制器获取记录然后查看,编辑和更新它们我的第一个相册控制器工作正常但是当我创建另一个控制器时它会给我错误。
答案 0 :(得分:1)
您需要向服务管理器注册服务Album\Model\DemoTable
;就像你现有的Album\Model\AlbumTable
一样。
documentation shows you how to register the AlbumTable
;
因此,通过修改该示例,这样的事情应该起作用:
// Module.php
public function getServiceConfig()
{
return array(
'factories' => array(
'Album\Model\DemoTable' => function($sm) {
$tableGateway = $sm->get('DemoTableGateway');
$table = new DemoTable($tableGateway);
return $table;
},
'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);
},
'DemoTableGateway' => function ($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new Demo());
return new TableGateway('demo', $dbAdapter, null, $resultSetPrototype);
},
),
);
}
显然,您需要将Demo()
类替换为表所映射的实际类。