Yii - Cactiveform, cform, построитель форм - путаница
Это три понятия на Yii, которые я действительно не понимаю, что мы должны использовать, по каким сценариям?
Кто-нибудь может быть достаточно любезен, чтобы уточнить эти элементы Yii, и в какой ситуации мы должны их использовать?
2 ответа
Проверьте здесь для живых примеров ActiveForm, CForm, и так далее. Вы также можете увидеть живые файлы Model, View & Controller.
В документации CForm можно прочитать следующее:
... мы можем разделить форму на две части: те, которые определяют каждый отдельный вход формы, и те, которые украшают входные данные формы. Объект CForm представляет собой первую часть...
...а также CActiveForm
представляет последнее.
Другими словами, CForm
определяет элементы формы, но CActiveForm
(будучи виджетом) отображает его.
Глядя на исходный код, мы утверждаем, что CForm
может также выполнить render(), и его рендеринг основан на CActiveForm
виджет, вводя его свойство конфигурации activeForm, хотя рендеринг элементов ввода и кнопок реализован его собственными методами renderElements() и renderButtons() соответственно. По умолчанию их реализации полагаются на классы, использующие статические методы CHtml, что является точно таким же (или почти таким же), что и CActiveForm
Методы рендеринга. Конечно, поведение по умолчанию можно изменить, расширив класс.
Вот почему вопрос вкуса, какую технику использовать: CActiveForm
один виджет, объединяющий объявление полей формы и кнопок с их представлением в файле представления, вызывая удобные (обязательные) методы CActiveForm
экземпляр или CForm
класс, объявляющий входные спецификации формы в отдельном файле конфигурации и настраивающий ее рендеринг, указывая на соответствующий активный виджет формы и / или переопределяя методы рендеринга по умолчанию. Последний метод позволяет легко повторно использовать форму в нескольких действиях и не более, чем использование конструктора форм.