| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Для профи > Laravel 5.2.x + jenssegers/mongodb 3.0.x |
| Автор: doctor2k 8.8.2016, 11:39 | ||||||||||||
| Доброго времени суток, уважаемые господа, товарищи, граждане. Коллеги. Друзья. Братья. Проблема в следующем. Имеется Laravel 5.2.x с прикрученным к нему https://github.com/jenssegers/laravel-mongodb для работы с MongoDB. Дока в принципе подробная, штуковина работает, но вот понадобилось мне N дней назад взять объект по его _id. И тут я напоролся на грабли. В доке указано просто:
То есть, по сути, _id передаём строкой. Но этот код возвращает NULL. Помню, когда для Yii писал свою обёртку, там взаимодействие с монгой было через PHPшное расширение, и надо было перед обращением к базе превратить строку в MongoId, т.е.:
Здесь такое не срабатывает. Я полез в исходники самого расширения, нашёл следующие вещи:
Т.е. find() это просто такая обёртка для where(). Ладно, пробуем по-другому. Пишем сами через where():
Возвращается фигня. var_dump() выдаёт следующее:
Хотя объект под таким _id есть в коллекции, и через консоль Robomongo прекрасно ищется. Помогите пожалуйста найти решение проблемы, или хотя бы подскажите в какую сторону смотреть. Заранее спасибо. |
| Автор: doctor2k 11.8.2016, 12:17 | ||
Решил проблему. Переопределил метод find() в модели, стало так (на примере UserModel.php):
Не претендую на абсолютную правильность решения, но меня устраивает. |