【问题标题】:Yii - Cactiveform, cform, form builder - confusionYii - Cactiveform、cform、表单生成器 - 混淆
【发布时间】:2013-04-12 22:07:13
【问题描述】:

这三个关于 Yii 的概念,我真的不明白我们应该在什么场景下使用什么?

谁能解释一下那些 Yii 元素,我们应该在什么情况下使用它们?

【问题讨论】:

    标签: yii yii-cformmodel yii-cform


    【解决方案1】:

    CForm 的文档中可以阅读以下内容:

    ...我们可以分割一个表格 分为两部分:指定每个单独的表单输入的部分,以及 那些装饰表单输入的。一个 CForm 对象代表前一部分...

    ...而CActiveForm代表后者。

    换句话说,CForm 指定表单的元素,但CActiveForm(作为一个小部件)呈现它。

    查看源代码,我们声明CForm 也可以render() 本身,它的渲染依赖于CActiveForm 小部件并被CActiveForm 小部件通过引入其配置属性activeForm 包装,尽管实现了渲染输入元素和按钮通过自己的方法renderElements()renderButtons()相对。默认情况下,它们的实现依赖于使用CHtml 的静态方法的类,这与CActiveForm 的渲染方法完全相同(或几乎完全相同)。当然,可以通过扩展类来覆盖默认行为。

    这就是使用哪种技术的品味问题:CActiveForm 小部件单独通过调用CActiveForm 实例或@ 的方便(必需)方法将表单字段和按钮的声明与其在视图文件中的表示结合起来987654336@ 类在单独的配置文件中声明表单的输入规范,并通过指向适当的活动表单小部件和/或覆盖默认呈现方法来自定义其呈现。后一种技术允许在多个操作中轻松重用表单,并且不超过using form builder

    【讨论】:

      【解决方案2】:

      查看here 以获取 ActiveForm、CForm 等的实时示例。您还可以查看实时模型、视图和控制器文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多