我使用的是http://docs.php.net/manual/en/mongodb.tutorial.library.php,当我使用它们提供的示例时,我得到了一个PHP Fatal error: Class 'MongoDB\Collection' not found。我使用的是composer,即使没有require mongodb\mongodb,如果打印$manager,也会使用$manager,这意味着它使用的是一个MongoDB,而不是我安装的那个MongoDB(因为它没有安装,至少是通过composer安装的)。
有没有办法找到那个MongoDB或者解决我的问题?
解决:因为我使用的是命令行,而不是Luracast/Restler,所以我需要在命令行期间在构造中使用autoload
namespace NES\Utils;
use MongoDB;
class Mongo
{
private $manager;
private $collection;
public $result;
function __construct($collection)
{
require_once "../../vendor/autoload.php";
$this->manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$this->collection = new MongoDB\Collection($this->manager,"nestories.queue");
$result = $this->collection->find( [ 'teste' => 'teste'] );
print_r($result);
}
}问候
发布于 2016-01-19 03:35:58
你在你的项目中使用了作曲自编吗?另外,您正在使用名称空间吗?使用Composer mongo包的另一种方法是安装Mongo:https://pecl.php.net/package/mongo的PECL扩展。
如果使用PECL扩展,则需要确保它安装在每个环境中。
您所遇到的错误很可能是因为您没有正确地包含供应商autoload.php文件。
<?php
require 'vendor/autoload.php';当您尝试包含该文件时,错误日志输出会说什么?如果您使用的是xdebug,它会转储大量内容,但是通常情况下,包含文件‘/path/ to /不正确/ file /name.php’的错误应该会失败。
https://stackoverflow.com/questions/34867898
复制相似问题