php - fatal error : Class 'MongoDate' not found when using mongodb php driver 1. 1.2 和 PHP 7.0.2 - Laravel 5.1

标签 php mongodb laravel ubuntu nginx

我正在尝试配置 MongoDB 以在虚拟 Ubuntu 14.04 机器上使用我的 Laravel 5.1 Homestead 实例。我能够使用 sudo pecl install mongodb 成功安装支持 PHP 7.0 的最新版本的 MongoDB(这对 7.0 是正确的, sudo pecl install mongo 了)。

然后我在我的 Ubuntu 机器上的 php.ini 文件(全部三个)中添加了扩展,每个文件在:

  • /etc/php/7.0/cli/php.ini
  • /etc/php/7.0/fpm/php.ini
  • /etc/php/7.0/cgi/php.ini

这是我编写的适用于 PHP 7.0 的扩展:

  • extension=mongodb.so(不再是 mongo.so)

当我在浏览器中运行 phpinfo() 时,它指出 MongoDB 已正确配置我的 PHP 7.0。

如果正确配置了 MongoDB,为什么我会不断收到:

Fatal error: Class 'MongoDate' not found

当我尝试使用 php artisan migrate:refresh --seed 运行我的迁移和种子时?

我已经试过了:

  • 使用 vagrant reloadvagrant reload --provision 重启 Ubuntu 机器
  • 使用 sudo service nginx restartsudo service php7.0-fpm restart 重新启动 PHP 和 Nginx

都没有用。

最佳答案

正如您提到的,您正在使用适用于 PHP 7 的新 Mongo 扩展。

类名已从旧版本更改,即

MongoClient 现在是 MongoDB\Driver\Manager

MongoDate 现在是 MongoDB\BSON\UTCDateTime

我不确定所有内容的向后兼容程度如何,但这应该可以帮助您入门!

关于php - fatal error : Class 'MongoDate' not found when using mongodb php driver 1. 1.2 和 PHP 7.0.2 - Laravel 5.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34667609/

相关文章:

mysql - 在laravel中使用unique(),mysql是否正确运行onDelete Cascade?

Laravel nova - 如何从 BelongsTo 关系中删除所需的验证?

触发警告时 PHP 不插入 MySQL 行

mongodb - 如何从 mongodb-native/node.js 执行存储函数

java - 如何在spring-boot中使用具有多个数据库的Mongodb单实例

java - mongodb 尝试在更新中编辑 _id 字段时抛出错误

php - Laravel Text 不显示 True/False,而是 0/1

PHP XPath,无法检索目标标签内标签后的文本

php - 如何从paypal返回客户信息?

php - 防止直接/在 facebook 之外访问 facebook canvas 应用程序