我认为有一种方式来获得PDOStatement
表示。让我回到你身边。
这是一个快速解决方案。但是,这只适用于来自实际模型的数据(关系数据将是对象的数组)。
$objs = array();
foreach ($q->fetchArray() as $arr) {
$objs = (object)$arr;
}
- 编辑 -
找不到它。但你可以延长Doctrine_Query
课程。
class App_Doctrine_Query extends Doctrine_Query
{
public function fetchObjects(array $params = array())
{
return array_map(array($this, 'convertArrayToObject'), $this->fetchArray($params));
}
private function convertArrayToObject(array $arr)
{
$obj = new stdClass();
foreach ($arr as $key => $val) {
if (is_array($val)) {
$val = $this->convertArrayToObject($val);
}
$obj->$key = $val;
}
return $obj;
}
}
而在你的引导程序将添加像这样:
$manager = Doctrine_Manager::getInstance();
$manager->setAttribute(Doctrine_Core::ATTR_QUERY_CLASS, 'App_Doctrine_Query');
这不是给相同的结果阵列。只想返回字段。 – MAB
你是什么意思'只想返回领域? – xdazz
希望得到与execute(array(),Doctrine :: HYDRATE_ARRAY)相同的结果; 像: 阵列 ( [0] =>数组 ( [ID] => 1 [标题] =>标题 [title_safe] =>头 [描述] => Sayfa UST BARI ) 但我不想得到结果像数组我想要得到的结果像对象 – MAB