Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉韦尔蒙哥达->;getPdo()返回null_Php_Mongodb_Laravel 5.2 - Fatal编程技术网

Php 拉韦尔蒙哥达->;getPdo()返回null

Php 拉韦尔蒙哥达->;getPdo()返回null,php,mongodb,laravel-5.2,Php,Mongodb,Laravel 5.2,我正在使用DB::connection('mongodb')->getPdo()检查数据库是否已连接(如果未连接,phpunit会将某些测试标记为跳过),结果是->getPdo()总是返回null。我可以使用php artisan migrate创建新集合,并且可以将数据插入集合,这证明了该连接的有效性 环境: 操作系统:运行MAMP 3.2.0的windows 10 拉拉维尔:5.2.37 jenssegers/mongodb:3.0.2 编辑1:使用DB::connection('mongo

我正在使用
DB::connection('mongodb')->getPdo()
检查数据库是否已连接(如果未连接,phpunit会将某些测试标记为跳过),结果是
->getPdo()
总是返回null。我可以使用
php artisan migrate
创建新集合,并且可以将数据插入集合,这证明了该连接的有效性

环境:

操作系统:运行MAMP 3.2.0的windows 10

拉拉维尔:5.2.37

jenssegers/mongodb:3.0.2

编辑1:使用
DB::connection('mongodb')->getMongoDB()->connected添加返回的对象

MongoDB\Collection {#647
 +collectionName: "connected",
 +databaseName: "destinycore",
 +manager: MongoDB\Driver\Manager {#640},
 +readConcern: MongoDB\Driver\ReadConcern {#642},
 +readPreference: MongoDB\Driver\ReadPreference {#643},
 +typeMap: [
   "array" => "MongoDB\Model\BSONArray",
   "document" => "MongoDB\Model\BSONDocument",
   "root" => "MongoDB\Model\BSONDocument",
 ],
 +writeConcern: MongoDB\Driver\WriteConcern {#644},
}

虽然令人困惑,但它实际上是正确的。此连接类从Laravel提供的基类扩展而来。它不会返回PDO实例,因为这是一个MongoDB连接。它实际上并不使用PDO,PDO只用于SQL相关数据库。如果您正在查找此软件包的“原始”连接,则应使用
getMongoDB
方法,该方法返回一个
MongoDB\Client
实例。

无论如何,我要做的是验证是否已建立到数据库的连接。因为这是我集成测试中的一个助手方法。基本上,如果无法建立连接,phpunit将跳过测试。有什么方法可以帮助我吗?您应该能够查看->getMongoDB()->connected属性是否为true。它是公共的。@Miner3746如果这解决了它,你能将我的答案标记为正确吗?我已经尝试使用
DB::connection('mongodb')->getMongoDB()->connected
但是,无论mongodb在我的机器中是向上还是向下,它总是返回
mongodb\Collection
对象(在编辑1中显示)@Miner3746难道你就不能使用这个连接,看看它是否失败?我认为这不是80%的用例,而是更像边缘用例。不管怎么说,您似乎正在使用一个过时版本的MongoDB PHP扩展。而且->connected boolean甚至是一个不推荐使用的属性。使用新扩展时,连接是惰性的,因此您必须执行一个操作以确定凭据是否正确。