У меня есть динамика c где условия. Они состоят из следующего массива:
array:2 [
"brand_name" => array:2 [
0 => "a"
1 => "b"
]
"category_type" => array:1 [
0 => "AA"
]
]
Мне нужно применить условия where к моему запросу.
$em = $this->getEntityManager();
$sql = " select * from products as p";
$i = 0;
foreach ($wheres as $key => $value) {
if ($i === 0) {
$sql .= " WHERE";
} else {
$sql .= " AND";
}
$sql.= " te.$key IN (:$key)";
$i +=1;
}
Я не уверен, как присвоить значение запросу. Если бы у меня было одно условие where, я сделал бы что-то вроде этого:
$params = array(
$ids,
);
$query = $em->getConnection()->executeQuery(
$sql,
$params,
array(
\Doctrine\DBAL\Connection::PARAM_STR_ARRAY,
\PDO::PARAM_INT,
)
);
$records = $query->fetchAll();
Но я не знаю, как исправить, где where условия в динамике c.