2014-12-18 1 views
3

Входы:МЕЖДУ состоянии выбрать только одну строку Symfony2

:startPrice = 180 
:targetPrice = 300 

В базе данных у меня есть столбец цен и нужно найти все строки, в которых столбец цена лежали beetwen 180 и 300.

значения Цена в БД:

price = 270 
price = 278 

Итак, как мы можем видеть запрос, что я написал ниже, должны принести rhese две строки, но я получаю только первый (270).

Может кто-нибудь объяснить мне, почему МЕЖДУ условием извлекать только одну строку из БД? Вот строитель DB запрос:

$query = $result = $this->getEntityManager() 
     ->createQueryBuilder() 
     ->select('t') 
     ->from('VputiTripBundle:Trip', 't'); 
      $query 
       ->andWhere('t.price > :startPrice') 
       ->andWhere('t.price < :targetPrice'); 
      $parameters = [ 
       'startPrice' => $startPrice, 
       'targetPrice' => $targetPrice, 
      ]; 
     $query->setParameters($parameters) 
     ->setMaxResults(10) 
     ->getQuery() 
     ->getResult(); 

Строка запроса:

'SELECT t FROM VputiTripBundle:Trip t WHERE t.price > :startPrice AND t.price < :targetPrice' 
+1

Вы уверены, что имеется больше данных в БД, которые должны соответствовать? Кроме того, вы не задаете параметры для запроса – KhorneHoly

+0

thwo строк в базе данных с ценой 270 и 278. Я нашел beetwen 250 и 300. – nowiko

+0

Каков результат, если вы выберете вариант «MaxResults»? – KhorneHoly

ответ

1

Попробуйте так:

$queryBuilder = $this->getEntityManager()->createQueryBuilder(); 

$query = $queryBuilder 
     ->select('t') 
     ->from('VputiTripBundle:Trip', 't') 
     ->where($queryBuilder->expr()->between('t.price', ':startPrice', ':targetPrice')) 
     ->setParameters([ 
      'startPrice' => $startPrice, 
      'targetPrice' => $targetPrice 
     ]) 
     ->getQuery(); 

     $query->setMaxResults(10); 

     return $query->getResult(); 
+0

Я уже пробовал что-то вроде этого, но все же получал только одну (первую) строку из БД. – nowiko

+0

@Panzer_Commander Я думаю, что вы также должны опубликовать свою структуру таблиц, структуру сущности и действие/менеджер. Я уверен, что проблема не в db-запросе. – xurshid29

+0

Это не обязательно) Я перезагружаю проект прозрачным кешем, создать его, обновить, и все работает! Я не знаю, как, но ... спасибо всем парням) – nowiko

 Смежные вопросы

  • Нет связанных вопросов^_^