Я не совсем понимаю, о чем вы спрашиваете, и похоже, что вы планируете написать свой собственный код для многих вещей, которые инфраструктура 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, который может быть расширен при необходимости.