【发布时间】:2013-04-12 22:07:13
【问题描述】:
这三个关于 Yii 的概念,我真的不明白我们应该在什么场景下使用什么?
谁能解释一下那些 Yii 元素,我们应该在什么情况下使用它们?
【问题讨论】:
标签: yii yii-cformmodel yii-cform
这三个关于 Yii 的概念,我真的不明白我们应该在什么场景下使用什么?
谁能解释一下那些 Yii 元素,我们应该在什么情况下使用它们?
【问题讨论】:
标签: yii yii-cformmodel yii-cform
在CForm 的文档中可以阅读以下内容:
...我们可以分割一个表格 分为两部分:指定每个单独的表单输入的部分,以及 那些装饰表单输入的。一个 CForm 对象代表前一部分...
...而CActiveForm代表后者。
换句话说,CForm 指定表单的元素,但CActiveForm(作为一个小部件)呈现它。
查看源代码,我们声明CForm 也可以render() 本身,它的渲染依赖于CActiveForm 小部件并被CActiveForm 小部件通过引入其配置属性activeForm 包装,尽管实现了渲染输入元素和按钮通过自己的方法renderElements()和renderButtons()相对。默认情况下,它们的实现依赖于使用CHtml 的静态方法的类,这与CActiveForm 的渲染方法完全相同(或几乎完全相同)。当然,可以通过扩展类来覆盖默认行为。
这就是使用哪种技术的品味问题:CActiveForm 小部件单独通过调用CActiveForm 实例或@ 的方便(必需)方法将表单字段和按钮的声明与其在视图文件中的表示结合起来987654336@ 类在单独的配置文件中声明表单的输入规范,并通过指向适当的活动表单小部件和/或覆盖默认呈现方法来自定义其呈现。后一种技术允许在多个操作中轻松重用表单,并且不超过using form builder。
【讨论】:
查看here 以获取 ActiveForm、CForm 等的实时示例。您还可以查看实时模型、视图和控制器文件。
【讨论】: