MVC (codeigniter) дизайн вопрос - PullRequest
       3

MVC (codeigniter) дизайн вопрос

1 голос
/ 17 сентября 2010

пользователи хотят видеть некоторые отчеты из сохраненных данных в БД, например:

все продажи за интервал времени (пользователь отправляет только интервал времени),

все продажи ввыбранный город за определенный промежуток времени (то же, что и выше, но на этот раз выбрано дополнительное поле выбора города),

20 самых продаваемых магазинов (другой отчет, без отправки формы и других таблиц БД),

etc

Моя проблема в том, как я могу выполнить эту задачу, не написав отдельную модель, контроллер и представление для каждого отчета, или у каждого отчета есть метод в одном контроллере и модели и два представления (одно для отправки формы 1 дляРезультаты).

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

спасибо.

1 Ответ

1 голос
/ 17 сентября 2010

Это зависит от того, как вы структурируете свою БД. Хотя наличие большого количества моделей может показаться излишним, я бы сказал, что если вы подойдете к нему правильно, вы обнаружите, что это облегчает вашу жизнь. Например, у вас может быть модель, которая имеет дело с продажами. В этой модели может быть функция для извлечения всех продаж по дате или времени. Эта функция может иметь необязательный параметр, позволяющий фильтровать по городам. Тогда у вас может быть другая функция в той же модели, чтобы получить 20 лучших. С контроллера у вас будет одна функция. Это было бы одно большое заявление if, основанное на том, отправил ли пользователь форму или нет. Если нет, то отобразите представление формы (лучше всего иметь отдельные представления для определенных вещей или хотя бы фрагменты представлений). Если данные были отправлены, просто протестируйте данные, чтобы выяснить, какой отчет требуется, запросите соответствующий метод в вашей модели и отправьте результаты в другое представление результатов. Таким образом, один контроллер, одна модель, 2 вида (или более, если вы используете шаблонные вещи). Я сознательно не написал код для вас, но я надеюсь, что это указывает вам правильное направление. Пожалуйста, прокомментируйте, если я неправильно понял вопрос или вам нужны разъяснения.

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