2017-02-17 14 views
0

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

Теперь, если человек создать общий класс модели говорят «DB_Model» с методом

add($table, $fields) 

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

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

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

Благодаря

EDIT: Я не оспариваю CI, но только выше практики, что некоторые люди делают, чтобы тратить меньше времени на приложениях кодирования.

+0

Но разве это не модель, выполняющая фактическую работу базы данных? – qwertzman

+0

$ db_model_obj = новый DB_Model(); – MackProgramsAlot

+0

$ db_model_obj-> someFunction(); – MackProgramsAlot

ответ

1

Так как 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

Я бы назвал CI MVC-ish.Один из пунктов продажи: _CodeIgniter поощряет MVC, но не заставляет его на вас. – ourmandave