Я тестирую CodeIgniter и пытаюсь создать простой блог. Видеоурок на сайте CodeIgniter хорош, но очень неполный. Я не слишком знаком со структурой MVC, и мне интересно, как именно используется модель. Например, в настоящее время я занимаюсь административной частью своего блога, которая позволяет вам создавать, удалять и изменять записи. Представление содержит только xhtml, а об остальном позаботится контроллер. Что должно быть в модели? Происходит ли в модели все, что связано с базой данных (т. е. вставки, обновления, выборки и т. д.)?
Блог в CodeIgniter: Где начинается модель и заканчивается контроллер?
Ответы (4)
Зависит от того, кого вы спросите.
Некоторым людям нравится помещать в модель как можно больше (проверка, извлечение данных и т. д.), и контроллер просто нажимает на нее, чтобы получить необходимые данные, которые он затем передает представлению.
Подумайте об этом так: если у вас есть более одного контроллера, обращающегося к одной модели, то не должны ли общие вещи между ними находиться в общем месте (при условии, что эта общая вещь действительно имеет какое-то отношение к модели)?
Модель должна содержать все, что связано с базой данных, и выполнять все основные операции CRUD (создание, получение, обновление, удаление).
Контроллер должен обрабатывать всю связь между моделью и представлением. Так, например, если у вас есть форма для добавления нового сообщения, у вас должно быть представление для этой формы, которое вызывается из контроллера. Контроллер проверит, было ли что-либо отправлено, и, если что-то было, вызовет метод создания/вставки из модели публикации.
Для меня модель — это то, где я делаю всю «грязную» работу для своих данных. Я извлекаю, вставляю, обновляю данные в базу данных, все в модели. Я создаю 1 модель для 1 таблицы в БД.
Контроллер будет логическим центром страницы, которую я создаю. Нужно как можно тоньше. Если функция выходит за пределы 1 экрана, то она слишком длинная (за исключением случаев, когда она выполняет проверку формы, которая должна выполняться в контроллере). Вот где Модель приходит играть. Контроллер просто передает данные в модель. Я проверяю, обрабатываю и форматирую данные в модели. Затем мой контроллер извлекает обработанные данные из модели, передает их для просмотра, заканчивает.
модель = это объект, который «разговаривает с вашей базой данных» представление = это объект, который строит контроллер пользовательского интерфейса = является командиром.. он получил команду от пользователя, а затем передает ее модели и служит пользователю через представление.
чтобы создать простой блог, попробуйте прочитать начало работы с Codeigniter. это очень поможет вам после просмотра видео. ссылки на codeigniter хорошо задокументированы и хорошо объяснены. попробуй это сначала.