Задать вопрос
@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] -находит расхождения между пребывавшими данными и данными в бд.
  • Вопрос задан
  • 104 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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