我使用Doctrine 2 ORM将SQL表映射到对象中。有没有像asArray
这样的支持方法可以将我的对象转换为数组?
您可以简单地使用条令2文档章节中提到的getArrayResult
方法。阵列水合:
$array = $query->getArrayResult();
这是一个简短的符号,与@Joucks在评论中指出的答案完全相同:
$array = $query->getResult(Query::HYDRATE_ARRAY);
但您不一定要查看特定的Doctrine ORM解决方案来获得此类序列化功能。您还可以查看您正在使用的PHP框架附带的解决方案。
Zend框架
例如,如果使用Zend Framework,则可以在希望能够序列化为数组的对象中实现ArraySerializableInterface
。
此接口包含一个getArrayCopy
方法,该方法应返回序列化到数组的对象。
您可以在Zend Framework 2ZendStdlib
文档中阅读更多关于ArraySerializable
的信息
Symfony
Symfony附带此Serializer组件。
对于其他框架,我希望它们附带类似的接口/解决方案。