dilab/cake-mongo
CakePHP 3.3 的 MongoDB 数据源和数据映射器
Requires
- cakephp/cakephp: ~3.3
- mongodb/mongodb: ^1.1
Requires (Dev)
- cakephp/cakephp-codesniffer: ~2.1
- phpunit/phpunit: ~4.0
- psr/log: ~1.0
This package is auto-updated.
Last update: 2024-09-20 19:19:51 UTC
README
该插件在 MongoDB 之上提供了一个类似 ORM 的抽象。
安装
要安装 CakeMongo 插件,您可以使用 composer。从您的应用程序的根目录(其中包含 composer.json 文件)运行以下命令:
composer require imdad/cake-mongo:dev-master
您需要将以下行添加到您的应用程序的 config/bootstrap.php
文件中:
Plugin::load('Imdad/CakeMongo');
此外,您还需要在您的 config/app.php
文件中配置 'cake_mongo' 数据源连接。一个示例配置如下:
'Datasources' => [
//other datasources
'cake_mongo' => [
'className' => 'Imdad\CakeMongo\Datasource\Connection',
'driver' => 'Imdad\CakeMongo\Datasource\Connection',
]
]
概述
CakeMongo 插件使与 MongoDB 集合交互变得更加容易,并提供了一个类似于数据库访问和 ORM 的接口。要开始使用,您应该创建一个 Collection 对象。在 CakeMongo 中,Collection 对象是类似“仓库”或表格的类。
// in src/Model/Collection/ArticlesCollection.php namespace App\Model\Collection; use Imdad\CakeMongo\Collection; class ArticlesCollection extends Collection { }
请勿混淆 CakeMongo 的 Collection 类与 CakePHP 的 Collection 类。
然后您可以在您的控制器中使用您的 Collection 类
public function beforeFilter(Event $event) { parent::beforeFilter($event); // Load the Collection using the 'Mongo' provider. $this->loadModel('Articles', 'Mongo'); } public function add() { $article = $this->Articles->newEntity(); if ($this->request->is('post')) { $article = $this->Articles->patchEntity($article, $this->request->getData()); if ($this->Articles->save($article)) { $this->Flash->success(__('The article has been saved.')); return $this->redirect(['action' => 'index']); } $this->Flash->error(__('The article could not be saved. Please, try again.')); } $this->set(compact('article')); }
我们还需要为我们的索引文章创建一个基本的视图
<?= $this->Form->create($article); ?> <?= $this->Form->control('title', ['empty' => true]); ?> <?= $this->Form->control('body', ['type' => 'textarea']); ?> <?= $this->Form->button(__('Submit')) ?> <?= $this->Form->end() ?>
现在您应该能够提交表单并将新文档添加到 MongoDB 中。
或者,您可以使用 CollectionRegistry 在任何您想要的位置加载 Collection
use Imdad\CakeMongo\CollectionRegistry; $this->Articles = CollectionRegistry::get('Articles');
支持
GitHub 问题 - 在此处提交错误/问题!提交错误时,请尽可能提供详细信息。如果能创建单元测试将会更好。