Мне нужно выполнить следующий запрос на сервер MySQL из symfony.
SELECT count(DISTINCT hotel_id) FROM symfony.search_result where request_id=@requrst_id
Код:
В контроллере:
$qwery2=$repository->hotelsCount($searchId);
Функция:
public function hotelsCount($requestId){
$qb = $this->createQueryBuilder('self');
$qb->select('count(hotel_id)')
->where('self.request_id=:req_id')
->setParameter('self.req_id',$requestId)->getQuery()->getResult();
$rez=$qb->getQuery()->getSingleScalarResult();
var_dump($rez);
return $rez->fetchAll();
}
Но я получил ошибку: [Семантическая ошибка] line 0, col 13 near 'hotel_id) FROM': Error: 'hotel_id' is not defined.
Таблица:
Используйте count(self.hotel_id)
в выбранном или count(self.hotelId)
. И в вашем месте: self.reqId
<проверить сущности для этого
Я все еще новичок, поэтому я признаю, что не полностью выполнил ваш код, но попробую одинарные кавычки вокруг 'hotel_id'
Попробуйте это, в этом случае имя сущности - "SearchResult", а имя пакета - "AppBundle", измените его, если это необходимо.
public function hotelsCount($requestId) {
$qb = $this->createQueryBuilder();
$qb->select('count(p.hotel_id)');
$qb->from('AppBundle:SearchResult', 't')
->where('p.request_id = :id')
->setParameter('id', $requestId);
$count = $qb->getQuery()->getSingleScalarResult();
return $count;
}