Вы не можете привязать путь JSON таким образом.Из руководства :
Маркеры параметров можно использовать только там, где должны отображаться значения данных, а не для ключевых слов SQL, идентификаторов и т. Д.
Вам нужно будет изменить ваш where()
вызов, чтобы вместо него включить путь, и удалить значение этого параметра:
$query = $con2->createQueryBuilder()->select('*')
->from('`blog_entry`', 'p')
->where('WHERE url->"$.' . $request->getLocale() . '" = ?')
->setParameter(0, $entryUrl);
Обновление
Вдохновленный FMK, я провел небольшое тестирование на своем собственном сервере и обнаружил, что это будет работать:
$query = $con2->createQueryBuilder()->select('*')
->from('`blog_entry`', 'p')
->where('WHERE JSON_EXTRACT(url, ?) = ?')
->setParameter(0, '"$.' . $request->getLocale() . '"')
->setParameter(1, $entryUrl);