MongoDB и CodeIgniter [закрываются]

51
задан ROMANIA_engineer 23 July 2017 в 05:09
поделиться

3 ответа

Я не уверен, что это «путь CodeIgniter», но я создал библиотеку CodeIgniter, которая расширяет класс Mongo с дополнительным свойством для хранения текущей базы данных связь.

Вот соответствующие файлы кода из моего проекта.

config / mongo.php

$config['mongo_server'] = null;
$config['mongo_dbname'] = 'mydb';

библиотеки / Mongo.php

class CI_Mongo extends Mongo
{
    var $db;

    function CI_Mongo()
    {   
        // Fetch CodeIgniter instance
        $ci = get_instance();
        // Load Mongo configuration file
        $ci->load->config('mongo');

        // Fetch Mongo server and database configuration
        $server = $ci->config->item('mongo_server');
        $dbname = $ci->config->item('mongo_dbname');

        // Initialise Mongo
        if ($server)
        {
            parent::__construct($server);
        }
        else
        {
            parent::__construct();
        }
        $this->db = $this->$dbname;
    }
}

И пример контроллера

controllers / posts.php

class Posts extends Controller
{
    function Posts()
    {
        parent::Controller();
    }

    function index()
    {
        $posts = $this->mongo->db->posts->find();

        foreach ($posts as $id => $post)
        {
            var_dump($id);
            var_dump($post);
        }
    }

    function create()
    {
        $post = array('title' => 'Test post');
        $this->mongo->db->posts->insert($post);
        var_dump($post);
    }
}
51
ответ дан 7 November 2019 в 10:13
поделиться

Работа с MongoDB в CodeIgniter ничем не отличается от работы с ним где-либо еще.

Вы можете собрать библиотеку MongoDB, которая будет подключаться в конструкторе и хранить $ this-> conn для дальнейшего использования в методах.

затем либо работайте напрямую со свойством conn в ваших контроллерах, либо создайте несколько методов в вашей библиотеке MongoDB, чтобы сделать это за вас.

Взгляните здесь , чтобы увидеть простое руководство по PHP для работы с MongoDB.

Я с радостью создам для вас библиотеку, но за это придется заплатить. :-p

6
ответ дан 7 November 2019 в 10:13
поделиться

Я использую MongoDB w/ CI и придумал следующее. Это работает для меня, но я уверен, что это можно немного подправить. Я подумаю о доработке позже, но сейчас это делает то, что я хочу.

Я создал модель под названием "database_conn.php"

class Database_Conn extends Model {

    function _connect() {
        $m = new Mongo();

        $db = $m->selectDB( "YOUR DATABASE NAME" );
        return $db;
    }
}

Затем, если мне нужно подключиться к коллекции из моей модели.

$collection = Database_Conn::_connect()->selectCollection( "COLLECTION NAME" );
2
ответ дан 7 November 2019 в 10:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: