В чем ошибка при формировании запроса or like?

Вот собственно сам запрос

$search = Search::find()->where(['or like', ['name','description'], $query])->limit(30);

Вы дает такую ошибку
strpos() expects parameter 1 to be string, array given

в документации описано так
or like: похож на оператор like, только утверждения LIKE будут объединяться с помощью оператора OR, если второй операнд будет представлен массивом.
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 1
fornit1917
@fornit1917
"... если ВТОРОЙ операнд будет представлен массивом".

'or like' - оператор
['name','description'] - ПЕРВЫЙ операнд
$query - ВТОРОЙ операнд.

Понимаете?

or like не для того чтоб по нескольким колонкам искать. Or like для того чтоб по одной колонке через OR два условия сделать.

В вашем слечае надо написать так:

Search::find()->orWhere(['like', 'name', $query])->orWhere(['like', 'description', $query])
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы