doctrine2 dql, используйте setParameter с символом подстановки% при выполнении аналогичного сравнения

Я хочу использовать заполнитель параметров - например, ? 1 - с символами подстановки%. то есть что-то вроде: "u.name LIKE%? 1%" (хотя это приводит к ошибке). Документы имеют следующие два примера: 1.

// Example - $qb->expr()->like('u.firstname', $qb->expr()->literal('Gui%'))
public function like($x, $y); // Returns Expr\Comparison instance

Мне это не нравится, поскольку нет защиты от внедрения кода.

2.

// $qb instanceof QueryBuilder

// example8: QueryBuilder port of: "SELECT u FROM User u WHERE u.id = ?1 OR u.nickname LIKE ?2 ORDER BY u.surname DESC" using QueryBuilder helper methods
$qb->select(array('u')) // string 'u' is converted to array internally
   ->from('User', 'u')
   ->where($qb->expr()->orx(
       $qb->expr()->eq('u.id', '?1'),
       $qb->expr()->like('u.nickname', '?2')
   ))
   ->orderBy('u.surname', 'ASC'));

Мне это не нравится, потому что мне нужно искать термины в свойствах объекта, то есть мне нужны шаблоны с обеих сторон.

Ответы на вопрос(2)

Ваш ответ на вопрос