Использование CodeIgniter или любой инфраструктуры MVC при условии, что модель это обертка базы данных и контроллер не должен содержать никакой информации о базе данных или какой-либо связи с базой данных.
Теперь, если человек создаст общий класс Model, скажем:DB_Model«с методом
add($table, $fields)
Чтобы использовать этот метод, этот человек должен вызвать его из контроллер как
$this->DB_Model->add('my_table_name', $fields)
Теперь вопрос в том, не так ли это по определению Model-View-Controller фреймворк? Я имею в виду, контроллер теперь получил информацию о базе данных.
Спасибо
РЕДАКТИРОВАТЬ: Я не ставлю под сомнение CI, а только вышеупомянутую практику, что некоторые люди делают, чтобы тратить меньше времени на приложения, кодирование.
Таким образом, способ работы CI
создайте метод в модели, где будет выполнена фактическая работа с БД.
https://www.codeigniter.com/user_guide/general/models.html
создайте контроллер, который вызывает модель:
class Blog_controller extends CI_Controller {
public function blog()
{
$this->load->model('blog');
$data['query'] = $this->blog->get_last_ten_entries();
$this->load->view('blog', $data);
}
}
Пример взят по ссылке выше.
редактировать: да, это неправильно, на мой взгляд, это не правильно отделить так, как они сказали вам (?).
Других решений пока нет …