$ queryBuilder-> expr возвращает объект ExpressionBuilder. Внутри ExpressionBuilder мы находим:
public function literal($input, $type = null)
{
return $this->connection->quote($input, $type);
}
Таким образом, литералы заключаются в кавычки и должны быть в порядке.
Мы также находим:
public function like($x, $y)
{
return $this->comparison($x, 'LIKE', $y);
}
public function comparison($x, $operator, $y)
{
return $x . ' ' . $operator . ' ' . $y;
}
$ y в порядке, потому что сначала он проходит через литерал. Хотите быть немного осторожнее с $ x. Пока ваши filterFields являются внутренними, то нет проблем. Если они исходят от пользователя, вам необходимо убедиться, что они действительны.