Php 带有Zend_DB结果集(ZF2)的Automatch DB列

Php 带有Zend_DB结果集(ZF2)的Automatch DB列,php,zend-framework2,zend-db,Php,Zend Framework2,Zend Db,在我的“Module.php”中,getServiceConfig()中有以下代码 现在,我必须在中使用“exchangeArray($data)”方法编写一个匹配类,其中我必须将每个列与类属性匹配。 这是可行的,但是: 如何在不必手动编写匹配项的情况下编写? 是否有某种方法可以“自动化”列,以便我可以处理实体中的列1:1?我想,我必须使用除setArrayObjectPrototype之外的东西,但我还没有在google上找到任何东西。 任何帮助(一些链接或其他)都可以,谢谢;) Zf2提供默

在我的“Module.php”中,getServiceConfig()中有以下代码

现在,我必须在中使用“
exchangeArray($data)
”方法编写一个匹配类,其中我必须将每个列与类属性匹配。 这是可行的,但是:

如何在不必手动编写匹配项的情况下编写? 是否有某种方法可以“自动化”列,以便我可以处理实体中的列1:1?我想,我必须使用除
setArrayObjectPrototype
之外的东西,但我还没有在google上找到任何东西。
任何帮助(一些链接或其他)都可以,谢谢;)

Zf2提供默认水合策略

$resultSetPrototype = new Zend\Db\ResultSet\HydratingResultSet();
$resultSetPrototype->setHydrator(new Zend\Stdlib\Hydrator\ObjectProperty());
$resultSetPrototype->setObjectPrototype(new Foobar());
objectProperty
类型会根据对象属性自动更改。 还有其他类型,如
ClassMethods
,将使用getter/setter方法

$resultSetPrototype = new Zend\Db\ResultSet\HydratingResultSet();
$resultSetPrototype->setHydrator(new Zend\Stdlib\Hydrator\ClassMethods());
$resultSetPrototype->setObjectPrototype(new Foobar());
您还可以在resultsetprototype中定义自定义数据或将数据自动指定给模型。
但是这个解决方案需要你写一行你不想要的代码。

基本上,我只想去掉类foobart这是你的模型类,你不应该去掉它。我的模型叫做“FoobarTable”,我只想知道如何去掉实体“Foobar”(在某些情况下,我根本不需要它).在我的示例中,如果您的模型是
FoorbarTable
,那么您可以使用它而不是
Foobar()
。但我不认为Foobatable是一个模型类。名称似乎不正确。根据zend的教程:
$resultSetPrototype = new Zend\Db\ResultSet\HydratingResultSet();
$resultSetPrototype->setHydrator(new Zend\Stdlib\Hydrator\ClassMethods());
$resultSetPrototype->setObjectPrototype(new Foobar());