1
我想用不同的表創建兩個控制器獲取記錄然後查看,編輯和更新它們我的第一個相冊控制器工作正常,但是當我創建另一個控制器時,它會給我錯誤。如何在zend 2中創建兩個不同表的控制器
我想用不同的表創建兩個控制器獲取記錄然後查看,編輯和更新它們我的第一個相冊控制器工作正常,但是當我創建另一個控制器時,它會給我錯誤。如何在zend 2中創建兩個不同表的控制器
您需要的服務經理註冊服務Album\Model\DemoTable
;就像您現有的Album\Model\AlbumTable
一樣。
The 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()
類的表映射。
你能發佈一些你的代碼嗎? –
它看起來像你沒有在服務管理器中設置你的'Album \ Model \ DemoTable'這樣的錯誤,請參閱教程如何爲'Album \ Model \ AlbumTable'完成 - > http://框架.zend.com /手動/ 2.2/EN /用戶引導/數據庫和 - models.html#使用-的ServiceManager以進行配置最表網關和 - 注射 - 進入最albumtable – Crisp