我正在尝试使用mongodb作为我的codeigniter应用程序的后端。 我发现并遵循了这个例子:http://www.surfinme.com/codeigniter-mongodb/
所以我有以下结构:
+应用\ 库\ Mongo_db.php 配置\ mongodb.php 控制器\ api.php
这是我的api.php文件到目前为止的样子:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Api extends CI_Controller {
public function __construct()
{
parent::__construct();
//loading the mongodb library
$this->load->library('mongo_db');
}
public function index()
{
$data['main_content'] = "dashboard";
$this->load->view('includes/template',$data);
}
public function list_available()
{
//connect to mongodb collection (i.e., table) named as ‘surfinme_index’
$collection = $this->mongo_db->db->selectCollection('testcollection');
$result=$collection->find();
foreach($result as $data)
{
var_dump($data);
}
}
}
代码似乎正在运作。它将我的数据从数据库中取出并将其转储到我的浏览器中。但这种“感觉”是错误的,因为我没有模特。 或者我应该将库视为我的模型层? 我可以在名为api_model的models文件夹中轻松创建一个文件,并从那里调用库。 但那有点矫枉过正吗?
任何意见将不胜感激。
感谢。
答案 0 :(得分:0)
取决于您希望坚持MVC主体的严密程度。
通过为数据库操作创建模型,您可以获得几个潜在的好处。首先,它提供了一个可以被多个控制器重用的源。例如,可能有多个控制器使用selectCollection
。其次,如果由于某种原因你决定更改数据库,你只需要修改模型而不是每个调用mongo_db
的控制器。