Здесь не хватает одной вещи: если у вас есть различное количество элементов, которые вы хотите соединить во что-то вроде
WHERE [...] AND (field LIKE '%abc%' OR field LIKE '%def%')
и не хотите собирать DQL-строку самостоятельно, вы можете использовать orX
упомянуто выше, как это:
$patterns = ['abc', 'def'];
$orStatements = $qb->expr()->orX();
foreach ($patterns as $pattern) {
$orStatements->add(
$qb->expr()->like('field', $qb->expr()->literal('%' . $pattern . '%'))
);
}
$qb->andWhere($orStatements);