Php Zend\Stdlib\Hydrator\ClassMethods extract()返回空数组
我之前提到了如何有效地使用tablegateway执行insert\update,并被告知Php Zend\Stdlib\Hydrator\ClassMethods extract()返回空数组,php,zend-framework2,table-data-gateway,Php,Zend Framework2,Table Data Gateway,我之前提到了如何有效地使用tablegateway执行insert\update,并被告知Zend\Stdlib\Hydrator\ClassMethods,如下代码所示: 可替换为以下代码: saveAlbum(Album $album) { $hydrator = new ClassMethods(false); $data = $hydrator->extract($album); ... 但我发现当使用$hydrator->extract($albu
Zend\Stdlib\Hydrator\ClassMethods
,如下代码所示:
可替换为以下代码:
saveAlbum(Album $album)
{
$hydrator = new ClassMethods(false);
$data = $hydrator->extract($album);
...
但我发现当使用
$hydrator->extract($album)时代码>它返回一个空数组,这可能是什么原因?我对传递到函数中的$album
对象执行了var\u dump()
,它似乎有效。我还需要做些什么才能让它正常工作?类方法可以使用,或者假设每个属性都有getXXX()
方法,但前面问题中的类没有。您可能想尝试使用Zend\Stdlib\Hydrator\ObjectProperty
Hydrator,它应该使用对象的公共属性返回一个数组。Nice,正是我想要的。我得仔细研究一下策略。没有任何警告,是吗?在我的模型中使用公共属性和exchangeArray(),就像在quickstart文档中一样,这似乎是一个很好的方法。
saveAlbum(Album $album)
{
$hydrator = new ClassMethods(false);
$data = $hydrator->extract($album);
...