MVC путаница (кодигнитер)

Использование CodeIgniter или любой инфраструктуры MVC при условии, что модель это обертка базы данных и контроллер не должен содержать никакой информации о базе данных или какой-либо связи с базой данных.

Теперь, если человек создаст общий класс Model, скажем:DB_Model«с методом

add($table, $fields)

Чтобы использовать этот метод, этот человек должен вызвать его из контроллер как

$this->DB_Model->add('my_table_name', $fields)

Теперь вопрос в том, не так ли это по определению Model-View-Controller фреймворк? Я имею в виду, контроллер теперь получил информацию о базе данных.

Спасибо

РЕДАКТИРОВАТЬ: Я не ставлю под сомнение CI, а только вышеупомянутую практику, что некоторые люди делают, чтобы тратить меньше времени на приложения, кодирование.

0

Решение

Таким образом, способ работы 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);
}
}

Пример взят по ссылке выше.

редактировать: да, это неправильно, на мой взгляд, это не правильно отделить так, как они сказали вам (?).

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector