Класс MongoRegex () не найден

1

Я пытаюсь пример из php.net: - http://php.net/manual/en/class.mongoregex.php

при выполнении кода возникает ошибка:

Класс App\Http\Controllers\MongoRegex не найден

Но new MongoClient() работает отлично.

  • 1
    Опубликуйте код, который вы пробовали. Кажется, что отсутствует класс или он не импортирован.
  • 0
    Это говорит, что это расширение устарело. Вместо этого следует использовать расширение MongoDB.
Теги:
lumen

2 ответа

1
Лучший ответ

Итак, теперь это будет выглядеть так:

new \MongoDB\BSON\Regex("/.*doe/i")

И если вы используете Laravel с пакетом Jenssegers в версии 3+, вы можете запросить вот так:

User::where('name', 'regex', new \MongoDB\BSON\Regex("/.*doe/i"))->get();

или даже лучше:

User::where('name', 'regexp', '/.*doe/i'))->get();

Строка, указанная выше, автоматически преобразует строку в правильный объект Regex.


Источник: https://github.com/jenssegers/laravel-mongodb

3

MongoRegex() предназначен для расширения mongo и не доступен для расширения mongodb. Кажется, вы используете расширение mongodb. Поэтому вы должны использовать MongoDB\BSON\Regex() вместо MongoRegex().

  • 0
    О, когда я внимательно смотрю на ваше сообщение об ошибке, я обнаружил, что вы не импортировали MongoRegex ! Пожалуйста, добавьте этот код вверху вашего контроллера после пространства имен: use \ MongoRegex;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню