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 класс, объявляющий входные спецификации формы в отдельном файле конфигурации и настраивающий ее рендеринг, указывая на соответствующий активный виджет формы и / или переопределяя методы рендеринга по умолчанию. Последний метод позволяет легко повторно использовать форму в нескольких действиях и не более, чем использование конструктора форм.

Другие вопросы по тегам