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