将 Jenssegers MongoDB 与 Slim 和 Capsule 一起使用
Using Jenssegers MongoDB with Slim and Capsule
我正在使用 Slim 4 框架以及 Jenssegers MongoDB 库和 Capsule(Illuminate\Database 来自 Laravel)。我在我的 Linux 服务器上安装了 MongoDB 扩展程序,连接似乎一切正常,但我似乎无法将数据插入数据库或从中获取任何信息。我已经尝试使用查询生成器和 Eloquent。我的查询生成器示例代码如下。
use Illuminate\Database\Capsule\Manager as Capsule;
$capsule = new Capsule;
$capsule->getDatabaseManager()->extend('mongodb', function($config, $name) {
$config['name'] = $name;
return new \Jenssegers\Mongodb\Connection($config);
});
$capsule->addConnection([
'host' => '127.0.0.1',
'port' => 27017,
'database' => 'testing',
'username' => '',
'password' => '',
], 'mongodb');
// Set the event dispatcher used by Eloquent models... (optional)
use Illuminate\Events\Dispatcher;
use Illuminate\Container\Container;
$capsule->setEventDispatcher(new Dispatcher(new Container));
// Make this Capsule instance available globally via static methods... (optional)
$capsule->setAsGlobal();
// Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher())
$capsule->bootEloquent();
$capsule->connection('mongodb')->collection('testing')->insert([
'test1'=>'hello',
'test2'=>'world',
]);
数据库和集合存在,正如我在 Compass 中看到的那样。谁能看出我的代码哪里出了问题还是配置问题?
有两个问题,一个是你指出的缺少驱动程序,另一个是我的 PHP 在 Linux 中使用 Vagrant 是 运行 并且它指向到本地主机,但是 MongoDB 服务器在 Windows 机器上是 运行 而不是 Linux。谢谢。
我正在使用 Slim 4 框架以及 Jenssegers MongoDB 库和 Capsule(Illuminate\Database 来自 Laravel)。我在我的 Linux 服务器上安装了 MongoDB 扩展程序,连接似乎一切正常,但我似乎无法将数据插入数据库或从中获取任何信息。我已经尝试使用查询生成器和 Eloquent。我的查询生成器示例代码如下。
use Illuminate\Database\Capsule\Manager as Capsule;
$capsule = new Capsule;
$capsule->getDatabaseManager()->extend('mongodb', function($config, $name) {
$config['name'] = $name;
return new \Jenssegers\Mongodb\Connection($config);
});
$capsule->addConnection([
'host' => '127.0.0.1',
'port' => 27017,
'database' => 'testing',
'username' => '',
'password' => '',
], 'mongodb');
// Set the event dispatcher used by Eloquent models... (optional)
use Illuminate\Events\Dispatcher;
use Illuminate\Container\Container;
$capsule->setEventDispatcher(new Dispatcher(new Container));
// Make this Capsule instance available globally via static methods... (optional)
$capsule->setAsGlobal();
// Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher())
$capsule->bootEloquent();
$capsule->connection('mongodb')->collection('testing')->insert([
'test1'=>'hello',
'test2'=>'world',
]);
数据库和集合存在,正如我在 Compass 中看到的那样。谁能看出我的代码哪里出了问题还是配置问题?
有两个问题,一个是你指出的缺少驱动程序,另一个是我的 PHP 在 Linux 中使用 Vagrant 是 运行 并且它指向到本地主机,但是 MongoDB 服务器在 Windows 机器上是 运行 而不是 Linux。谢谢。