Doctrine查询返回结果中的额外字段

时间:2011-05-17 15:03:00

标签: mysql doctrine doctrine-1.2

我有一个Doctrine查询;

    $q = Doctrine_Query::create()->select('s.monthly_volume')
    ->from('SearchVolume s')
    ->innerJoin('s.Keywords k')
    ->where('k.group_id = ?',array($group_id));

我只是希望它返回结果数组中的monthly_volume值。它目前返回monthly_volume和id,我不希望它返回结果中的id。

1 个答案:

答案 0 :(得分:1)

Doctrine会自动将主键字段添加到几乎所有类型的水合模式中的结果中。

在这样的情况下,您需要一个简单的数组并且只选择一个字段,答案是单标量水合模式。像这样使用它:

$q = Doctrine_Query::create()->select('s.monthly_volume')
    ->from('SearchVolume s')
    ->innerJoin('s.Keywords k')
    ->where('k.group_id = ?');

$monthly_volumes = $q->execute(array($group_id), Doctrine_Core::HYDRATE_SINGLE_SCALAR);

您应该会发现$ monthly_volumes是一个简单的一维数组,只包含您想要的值。