2010-09-03 89 views
0

我创造如下表方法以提取某些特定的表列,使以后的比较对存储在数组的值的表中获取的特定列: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也出现在结果上?有什么办法可以删除它?

+0

如果你不需要它,不要使用它。 Doctrine处理查询并返回结果时总会发送大量信息。我假设你要循环查看结果,所以如果不需要id,就把它留在循环中。 – DrColossos 2010-09-03 17:57:59

+0

@DrColossos问题是泰勒 – 2010-09-05 15:04:19

回答

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最好是简单地循环并忽略不需要的数据。