MVC: Почти весь мой контент создается в модели, должен ли я использовать представление для разного контента? - PullRequest
0 голосов
/ 23 марта 2012

Я создаю веб-приложение, в котором 80-90% контента представляет собой форму или таблицу данных.Я использую MVC через codeiginiter.

Я создал классы, чтобы иметь дело с генерацией форм и таблиц, и эти формы и таблицы создаются в модели, и представлению передается объект Form / Table, который просто повторяет его.Это означает, что мои представления чрезвычайно скудны, и я использую их повторно, потому что большинство из них просто делают: -

* load head and header views *

<?=$form?>

* load footer view *

Так что мне нужно только новое представление, когда у меня другой макет, то есть 2 формы на одной странице.

Вопрос в том, когда у меня есть контент, который не является формой или таблицей, например, некоторая сводная информация или просто абзац текста, где было бы наиболее интуитивно понятное место для его поиска?Я чувствую, что введение его в представление будет вводить в заблуждение, потому что все другие манипуляции с контентом выполняются моей моделью, поэтому, если я хочу отредактировать форму или таблицу, я смотрю на модель и очень редко даже смотрю на мои представления.

Я думал о создании простого класса 'Content', который бы занимался выводом абзаца и сводной информации ... Затем я мог бы создать контент в модели ...

Редактировать:

Подумайте об этом еще раз, поскольку необходимо генерировать сводную информацию, что, естественно, должно быть сделано в модели.Для «фиксированного» содержимого, такого как текстовый абзац, поскольку он все еще является данными, несмотря на то, что он статичен и не является обязательным для хранения в базе данных, он все равно должен храниться где-то и имеет смысл иметь его в модели.

1 Ответ

0 голосов
/ 23 марта 2012

Было бы логичнее иметь представления, выполняющие работу по форматированию, которую вы выполняете в модели.

Модели должны возвращать данные такого типа в виде массивов, и тогда у вас должно быть представление, способноевыложите форму из массива.В Codeigniter это работает очень хорошо благодаря помощнику форм.

Например, создатель форм, работающий с Bootstrap 2: https://github.com/FoOlRulez/FoOlFuuka/blob/master/application/views/admin/form_creator.php

Красота представлений заключается в том, что вы можете складывать и смешиватьих, которые могут решить вашу проблему.Например, вы можете назвать их так:

$data['form'] = $this->radix->board_structure(); // this holds a huge array that I associate to a database model
$this->viewdata["function_title"] = _('Editing board:') . ' ' . $board->shortname;
$this->viewdata["main_content_view"] = $this->load->view('admin/form_creator', $data, TRUE);
$this->load->view('admin/default', $this->viewdata);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...