Лучшая практика размещения логики отображения в представлении в CakePHP
-
02-07-2019 - |
Вопрос
У меня есть приложение CakePHP 1.2.
Я сталкиваюсь со случаем, когда мне нужно выполнить некоторую логику, чтобы правильно отобразить вещи в представлении.
Пример:У меня есть таблица под названием «Типы».Существуют флаги для различных типов, поэтому в каждой строке установлено одно или несколько полей BOOL.Для одного типа я сохраняю содержимое RTF в другом поле.
Поэтому, когда я показываю список всех опечаток в представлении, я хочу создать ссылку для типов, которые являются типом, в котором я храню RTF.Иначе ссылку показывать не хочу.
Где лучшее место для этой логики?
Я хочу использовать html->link для создания ссылки, но не могу использовать ее внутри своей модели.Должна ли логика присутствовать в модели, и если да, то должен ли я создавать HTML в своей модели, напримерсвязь?
Решение
я бы предложил сохранить эту логику в представлении, создание HTML в вашей модели нарушает полное разделение представления и модели.Я не думаю, что что-то не так с логикой представления, лично я склонен ограничивать ее базовыми условными выражениями.
в конечном счете, я думаю, идея состоит в том, чтобы выяснить, где эта логика лучше всего подходит.в этом случае логика такова: «если у меня есть определенный тип, я должен предоставить ссылку на него», что является проблемой представления, а не проблемой модели.
Другие советы
Создайте свой собственный AppHtmlHelper, который расширяет HtmlHelper и выполнит проверку за вас.