找不到"MongoDB\Driver\Manager"类

gar*_*den 9 mongodb laravel laravel-5

我正在将MongoDB与Laravel集成.我关注此链接jenssegers/laravel-mongodb中的信息.我成功地整合了MongoDB.但是,当我运行代码时,它会抛出此错误

Client.php第56行中的FatalErrorException:找不到类'MongoDB\Driver\Manager'

这是代码

控制器 app/Http/Controller/NewController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

use App\User;

class NewController extends Controller
{
    //
    public function index(){
        $var = User::all();
        var_dump($var);
    }
}
Run Code Online (Sandbox Code Playgroud)

以下user.php是我们创建项目时Laravel默认提供的内容

<?php

namespace App;

use Illuminate\Foundation\Auth\User as Authenticatable;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;

class User  extends Eloquent 
{
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $collection = 'users_collection';
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes excluded from the model's JSON form.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
}
Run Code Online (Sandbox Code Playgroud)

请告诉我为什么我会收到此错误.

Phpinfo - > mongodb部分即将到来.这是一个屏幕截图 phpinfo

J.C*_*ras 13

我不知道它是否是最优雅的解决方案,但它对我有用:

  1. 安装php驱动程序 $ sudo pecl install mongodb
  2. 创建扩展文件$ sudo nano /etc/php5/mods-available/mongodb.ini并在其中写入:extension = mongodb.so
  3. 为此文件创建符号链接 $ sudo ln -sv /etc/php5/mods-available/mongodb.ini /etc/php5/apache2/conf.d/20-mongodb.ini
  4. 为此文件创建其他符号链接 $ sudo ln -sv /etc/php5/mods-available/mongodb.ini /etc/php5/cli/conf.d/20-mongodb.ini
  5. 重启apache或使用的服务器 $ sudo service apache2 restart

可能需要重新安装jenssegers/mongodb: $ composer require jenssegers/mongodb

  • 在[link](https://pecl.php.net/package/mongodb/1.1.3/windows)中,您可以在Windows系统上找到适用于PHP的mongodb驱动程序(php_mongodb.dll).下载适用于PHP和系统(x86或x64)驱动程序的正确版本.将此DLL复制到扩展文件夹中,在我的情况下是`C:\ wamp64\bin\php\php5.6.16\ext`并在php.ini中添加此行:`extension = php_mongodb.dll`.重新启动Apache服务器,然后重试.请注意,您必须编辑此路径中的php.ini文件(`C:\ wamp64\bin\php\php5.6.16`,如果使用Wamp),而不是任务栏上的Wamp图标. (3认同)

Alb*_*t s 8

您可能还需要在ubuntu/debian上重启fpm

sudo service php7.0-fpm restart
Run Code Online (Sandbox Code Playgroud)

对于php5

sudo service php5-fpm restart
Run Code Online (Sandbox Code Playgroud)

另外,请确保extension=mongodb.so在:

apache2/php.ini
cli/php.ini
fpm/php.ini
Run Code Online (Sandbox Code Playgroud)

检查我做:

locate php.ini | xargs grep mongo
Run Code Online (Sandbox Code Playgroud)

看到php.ini文件:

php --ini
Run Code Online (Sandbox Code Playgroud)