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 - это простой одномерный массив, содержащий только те значения, которые вы хотели.