@alpha917

Как на Yii2 сформировать запрос с регулярным выражением?

Использую Yii2 + Yii2-mongodb
Требуется запрос аналогичный sql: name LIKE "%text%"
Как я понял, в монго такое только регулярками, потому пишу:
$q = [
  'name' => [
    '$regex' => $text,
    '$options' => 'i',
  ]
];
$result['mobs'] = Biotype::find($q)->limit(10)->all();

согласно https://docs.mongodb.com/manual/reference/operator...
Пробовал
$q = ['name' => new \MongoDB\BSON\Regex('*('.trim($text).')*', 'ig')];
$result['mobs'] = Biotype::find($q)->limit(10)->all();

И в том и в другом случае получаю один и тот-же результат - первые 10 записей без какой-либо фильтрации, точно так же если я вообще пустое условие отправлю. ЧЯДНТ?
  • Вопрос задан
  • 458 просмотров
Решения вопроса 1
@alpha917 Автор вопроса
я затупил.
$q = [
  'name' => [
    '$regex' => $text,
    '$options' => 'i',
  ]
];
$result['mobs'] = Biotype::find()->where($q)->limit(10)->all();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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