【发布时间】:2013-03-22 16:52:32
【问题描述】:
Zend\Db\TableGateway\TableGateway 的 Zend Framework 2 文档说:
[Zend\Db\TableGateway\TableGateway] 构造函数可以采用3 种不同形式 的特征:作为单个特征对象,作为FeatureSet 对象,或作为要素对象数组。
而TableGateway 构造函数实际上是checks 类型。
因此,TableGateway 构造函数的第四个参数需要与Feature\AbstractFeature 或Feature\FeatureSet 兼容,或者是Feature\AbstractFeature 兼容对象的数组。
在model part of the Get Started tutorial 中创建了一个TableGateway 类型的对象,它得到一个Zend\Db\ResultSet\ResultSet 作为第四个参数:
class Module
{
// getAutoloaderConfig() and getConfig() methods here
// Add this method:
public function getServiceConfig()
{
return array(
'factories' => array(
...
'AlbumTableGateway' => function ($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new Album());
return new TableGateway('album', $dbAdapter, null, $resultSetPrototype);
},
),
);
}
}
ResultSet 不是 instanceof AbstractFeature。但它有效。
它是如何工作的?
【问题讨论】:
标签: zend-framework2 zend-db tablegateway