Doctrine запрос возвращает дополнительное поле в результате

У меня есть запрос доктрины;

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

Я просто хочу, чтобы он возвращал значение month_volume в массиве результатов. В настоящее время он возвращает month_volume и идентификатор, я не хочу, чтобы он возвращал идентификатор в результате.

1 ответ

Решение

Doctrine автоматически добавляет поле первичного ключа к результатам практически в каждом режиме гидратации.

В таком случае, когда вы хотите простой массив и выбрать только одно поле, ответом является режим Single Scalar Hydration. Используйте это так:

$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);

Вы должны обнаружить, что $month_volumes - это простой одномерный массив, содержащий только те значения, которые вы хотели.

Другие вопросы по тегам