Отправить данные из контроллера для просмотра или иметь логику в представлении? - PullRequest
3 голосов
/ 28 июня 2011

У меня есть веб-страница, на которой я пытаюсь создать контекстное меню в зависимости от категории просматриваемой страницы. Если категория на animals, URL на основе сегмента будет содержать animal, т.е. http://www.mywebbie.com/livingthings/display/category/animals.

Чтобы построить контекстное меню, мне нужно будет получить доступ к своей таблице базы данных subcategory со столбцами subcat_id, subcat_name, cat_id и выбрать все строки с cat_id, соответствующими строке animals.

Должен ли я получить доступ к базе данных (с помощью метода модели) из контроллера, а затем передать массив, содержащий имена подкатегорий, в представление? Или все должно быть сделано в представлении, где есть код, который загружает метод модели, который возвращает массив подкатегорий?

Кстати, я использую PHP-фреймворк Codeigniter.

Ответы [ 2 ]

3 голосов
/ 28 июня 2011

Не знаком с CI, но если у вас есть какой-то ActiveRecord или ORM, добавьте метод getAllSubCats () к категории (?) И вызовите его при циклическом просмотре категорий.

Если вышеупомянутое не имеет смысла: View не должен даже знать, что база данных существует, поэтому, чтобы ответить на ваш вопрос, сделайте это в Controller. Или, что еще лучше, выполните выборку в модели и передайте результаты обратно в контроллер.

3 голосов
/ 28 июня 2011

Да, контроллер заботится о связи с моделью и обработке данных, представление заботится о представлении данных.

Предоставляет данные, доступные для просмотра из контроллера, в самой простой формеПозвольте нам сказать, простой массив.

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