Я хочу сделать запрос доктрины, в котором каждый параметр может иметь несколько значений (исходя из нескольких выбранных).
У меня есть таблица с параметром 'type', который может иметь значение 1, 2, 3 или 4 и параметр «онлайн», который может быть 0 или 1.
Пока мой запрос следующий:
$query = $this->createQueryBuilder('properties');
if (array_key_exists('type', $searchValues)) {
$types = $searchValues['type'];
$iterator = 0;
foreach ($types as $type) {
if ($iterator == 0) {
$query->andWhere('properties.idPropertyType = ' . $type);
} else {
$query->orWhere('properties.onlineProperties = ' . $type);
}
$iterator++;
}
}
if (array_key_exists('status', $searchValues)) {
$status = $searchValues['status'];
$iterator = 0;
foreach ($status as $statu) {
if ($iterator == 0) {
$query->andwhere('properties.onlineProperties = ' . $statu);
} else {
$query->andWhere('properties.onlineProperties = ' . $statu);
}
$iterator++;
}
}
$properties = $query->getQuery()->getResult();
В случае поиска с параметром type =1 и в режиме онлайн = 0 и 1, у меня есть результаты, где тип - это значение, отличное от 1. Я понимаю причину, но не могу найти правильный способ сделать мой запрос.