Задать вопрос
@SokolovArtur

Знак вопроса? в запросе ActiveRecord?

Пишу фильтр на сайт. В качестве БД - PosgreSQL.

По get параметрам пишу условия выборки.
$languageFilter = ActiveRecord::find();

$languageFilter->andWhere('"p"."field_id" = 17');
try {
	$languageFilter->andWhere('"p"."value"::jsonb ?| array' . str_replace('"', "'", (string) Json::encode($filterGetData['language'])));
} catch (InvalidParamException $e) {
	throw new UnprocessableEntityHttpException();
}

$resumeFind->andWhere($languageFilter->where);


В итоге выбрасывается исключение

SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near "$1"
LINE 1: AND (("p"."field_id" = 17) AND ("p"."value"::jsonb $1| array['3']))

Строчка "p"."value"::jsonb ?| array[3] -находит расхождения между пребывавшими данными и данными в бд.
  • Вопрос задан
  • 105 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
  • FructCode
    Yii2 Фреймворк
    2 месяца
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы