用于从表中获取特定列的DQL查询

时间:2010-09-03 10:31:50

标签: arrays doctrine dql

我创建了下面的表方法,以便提取一些特定的表列,以便以后与存储在数组中的值进行比较:

public function findAllComposedExcelColumns()
  {
    $q = Doctrine_Query::create()
        ->select('p.branch_code, p.state_id, p.state_description, p.account, p.client_name')
        ->from('Process p');

    return ($q->fetchArray());
  }

但是当我打印检索到的数组的元素时,它还有一个不需要的属性 id

Array ( [0] => Array ( [id] => 1 [branch_code] => ... [state_id] => ... [state_description] => ... [account] => ... [client_name] => ... ) )

为什么id也会出现在搜索结果中?有什么办法可以删除吗?

1 个答案:

答案 0 :(得分:0)

尝试使用HYDRATE_SCALAR保湿 - 它可能会给你你想要的东西。

例如

public function findAllComposedExcelColumns()
  {
    $q = Doctrine_Query::create()
        ->select('p.branch_code, p.state_id, p.state_description, p.account, p.client_name')
        ->from('Process p');
    $output = $q->execute(array(), Doctrine_Core::HYDRATE_SCALAR);
    return $output;
  }

修改

请注意,这也会更改您的数组键,

例如从['branch_code']到['p_branch_code']

当有相关记录时,使用这种水合方法也不理想。

总而言之,上述内容实现了方案的目标。但是,我同意DrColossos的说法,最好简单地循环并忽略你不想要的数据。