CI - передача значений от контроллера к модели и доступ к ним в конструкторе модели - PullRequest
1 голос
/ 06 мая 2011

Я застрял в проблеме. Надеюсь, кто-нибудь поможет. я использую codeigniter для создания моего приложения. Теперь у меня появилась идея создать единую модель для всего приложения. Но как это возможно? Мой старший также спросил меня об этом, и сказал, что это невозможно. но я очень близок к успеху. единственное, чего не хватает, это передачи данных от контроллера к конструктору модели.

На самом деле моя идея заключается в следующем: -> Я отправлю все данные в конструктор модели (если это возможно)

-> затем проверка данных (используя мой собственный класс проверки)

-> установка свойств класса динамически (с использованием стандартного класса)

-> выполнение запроса (тип запроса будет находиться в массиве данных, передаваемых через контроллер).

предположим, array[0] хранит 'insert', поэтому я выполню запрос, используя: $this->array[0]->.. etc

но мой 1-й шаг - большая проблема для меня ... поскольку я не могу сказать, что дальнейшие действия будут работать или нет.

1 Ответ

3 голосов
/ 06 мая 2011

Я не совсем понимаю, о чем вы спрашиваете, и похоже, что вы планируете написать свой собственный код для многих вещей, которые инфраструктура CI уже делает для вас.

Вот пример того, какдля передачи данных из контроллера в вашу модель:

class Foo extends CI_Controller {

    function bar()
    {
        $data=array('foo'=>'bar', 'abc'=> 'def');
        $this->load->model('my_model');
        $this->my_model->do_something($data);
    }
}

class My_model extends CI_Model {

    function do_something($data=array())
    {
        print_r($data);
    }
}

Вы можете написать свои собственные функции модели для вставки:

function insert_data($table, $data=array()) {
    $this->db->insert($table, $data);
    // etc
}

, но это только активная запись - функциональность, которая уже существует.

При необходимости вы можете передать данные в конструктор моделей, да.Похоже, что вам следует немного переосмыслить свой подход.

Проверка может быть выполнена в контроллере (и, действительно, в модели) с использованием класса проверки CI, который может быть расширен при необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...