Пользователь go te форма расширенного поиска. Он может вводить несколько значений и некоторую цену слайдера диапазона (jquery ui widget). Затем в контроллере я получаю значения и хочу найти все строки, где будет вычисляться хотя бы одно условие. Вот код хранилища:Между разработчиками запросов и Symfony2
public function advancedSearch($bag, $startPrice, $targetPrice)
{
$parameters = ['bag' => $bag];
$query = $result = $this->getEntityManager()
->createQueryBuilder()
->select('t')
->from('VputiTripBundle:Trip', 't');
$query->orWhere('t.bag = :bag');
$query->orWhere(
$query->expr()->between('t.price', $startPrice, $targetPrice)
);
$result = $query
->setParameters($parameters)
->setMaxResults(1)
->getQuery()
->getResult();
return $result;
}
Whe Пуск- и target- цена равна 271 и 278, я получаю почту, где цена 300. То, что я делаю неправильно?
Да, вы правы, моя ошибка. Но что, если я хочу получить результаты только для цен, и сумка будет равна нулю? – nowiko
Итак, вам нужен эквивалент QueryBuilder 'WHERE price МЕЖДУ: startPrice AND: targetPrice AND (bag =: bag OR bag IS NULL)'? –
да, что-то вроде этого, проблема в том, что я получу несколько входов в контроллер (сумка, цена и т. Д.), А затем мне нужно найти все сообщения, где есть на листе один из всех этих вещей ... – nowiko