这就是你的三个概念,我真的不明白我们应该用什么,在什么场景下?
任何人都可以善意地澄清那些 Yii 元素,我们应该在什么情况下使用它们?
最佳答案
在 CForm 的文档中,可以阅读以下内容:
...we can divide a form in two parts: those that specify each individual form inputs, and those that decorate the form inputs. A CForm object represents the former part...
...而
CActiveForm
代表后者。换句话说,
CForm
指定表单的元素,但 CActiveForm
(作为小部件)呈现它。查看源代码,我们声明
CForm
也可以 render() 本身,其渲染依赖于 CActiveForm
小部件并通过引入其配置属性 activeForm 包装,尽管渲染输入元素和按钮是由其自己实现的方法 renderElements() 和 renderButtons() 相对。默认情况下,它们的实现依赖于使用 CHtml 的静态方法的类,这与 CActiveForm
的呈现方法所做的完全相同(或几乎完全相同)。当然,可以通过扩展类来覆盖默认行为。这就是为什么它是使用哪种技术的品味问题:
CActiveForm
小部件通过调用 CActiveForm
实例或 CForm
类的方便(必需)方法,将表单字段和按钮的声明与其在 View 文件中的表示相结合在单独的配置文件中声明表单的输入规范,并通过指向适当的事件表单小部件和/或通过覆盖默认呈现方法来自定义其呈现。后一种技术允许在多个操作中轻松重用表单,并且不超过 using form builder 。
关于Yii - Cactiveform、cform、表单生成器 - 困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15981621/