Yii - Cactiveform、cform、表单生成器 - 困惑

标签 yii yii-cformmodel yii-cform

这就是你的三个概念,我真的不明白我们应该用什么,在什么场景下?
任何人都可以善意地澄清那些 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/

相关文章:

php - 带有查询字符串的 Yii urlManager 路由

php - Nginx + Yii 应用程序 = js,css - net::ERR_CONNECTION_REFUSED

php - 有没有办法用 yii\rbac\PhpManager 刷新 Yii2 中缓存的 rbac 项?

php - 如果表单属性值为空,则使用 Yii 规则验证更改属性名称

php - Yii - getActiveFormWidget() 在核心中返回错误类型?

validation - yii2 条件验证在服务器端不起作用?