Yii框架官方指南系列21——使用表单:使用表单生成器(CForm)
2014-11-07 00:00
501 查看
当创建 HTML 表单时,经常我们发现我们在写很多重复而且在不同项目中很难重用的视图代码。 例如,对于每个输入框, 我们需要以一个文本标签和显示可能的验证错误来关联它。 为了改善这些代码的重用性,我们可以使用自版本 1.1.0 可用的表单生成器特征。
1. 基本概念
Yii 表单生成器使用 CForm 对象来代表描述一个HTML表单所需的内容,包括哪些数据模型关联到此表单, 表单中有哪些输入框,以及如何渲染整个表单。开发者主要需要创建和配置这个 CForm 对象,然后调用它的渲染方法来显示表单。
表单的输入框参数被组织为根据表单元素的分层结构。 在结构的顶层,是 CForm 对象。此对象的成员分为两大类:CForm::buttons 和 CForm::elements。前者包含 按钮元素(例如提交按钮,重设按钮),后者包含输入元素,静态文本和子表单。子表单也是 CForm 对象,只是它存在于 另一个表单的 CForm::elements 中。子表单可以有它自己的数据模型, CForm::buttons 和 CForm::elements 集合。
当用户提交一个表单时,整个表单结构中填写的数据被提交, 也包含子表单中填写的数据。 CForm 提供了便利方法,可以自动赋值输入的数据到对应的数据属性并执行数据验证。
2. 创建一个简单的表单
下面,我们展示如何使用表单生成器来创建一个登录表单。
首先,我们编写登录 action 代码:
1. 基本概念
Yii 表单生成器使用 CForm 对象来代表描述一个HTML表单所需的内容,包括哪些数据模型关联到此表单, 表单中有哪些输入框,以及如何渲染整个表单。开发者主要需要创建和配置这个 CForm 对象,然后调用它的渲染方法来显示表单。
表单的输入框参数被组织为根据表单元素的分层结构。 在结构的顶层,是 CForm 对象。此对象的成员分为两大类:CForm::buttons 和 CForm::elements。前者包含 按钮元素(例如提交按钮,重设按钮),后者包含输入元素,静态文本和子表单。子表单也是 CForm 对象,只是它存在于 另一个表单的 CForm::elements 中。子表单可以有它自己的数据模型, CForm::buttons 和 CForm::elements 集合。
当用户提交一个表单时,整个表单结构中填写的数据被提交, 也包含子表单中填写的数据。 CForm 提供了便利方法,可以自动赋值输入的数据到对应的数据属性并执行数据验证。
2. 创建一个简单的表单
下面,我们展示如何使用表单生成器来创建一个登录表单。
首先,我们编写登录 action 代码:
public function actionLogin() { $model = new LoginForm; $form = new CForm('application.views.site.loginForm', $model); if($form->submitted('login') && $form->validate()) $this->redirect(array('site/index')); else $this->render('login', array('form'=>$form)); }
相关文章推荐
- Yii框架官方指南系列20——使用表单:批量收集表格输入
- Yii框架官方指南系列16——使用表单:概览
- Yii框架官方指南系列19——使用表单:创建表单
- Yii框架官方指南系列17——使用表单:创建模型
- Yii框架官方指南系列18——使用表单:创建动作
- Yii框架官方指南系列49——专题:使用非主流模板语法
- Yii框架官方指南系列25——使用数据库:Active Record
- Yii框架官方指南系列24——使用数据库:Query Builder
- Yii框架官方指南系列34——扩展Yii:使用扩展
- Yii框架官方指南系列26——使用数据库:关系型 Active Record
- Yii框架官方指南系列增补版27——使用数据库:数据库迁移
- Yii框架官方指南系列36——扩展Yii:使用第三方库
- Yii框架官方指南系列23——使用数据库:数据访问对象(DAO)
- Yii框架官方指南系列22——使用数据库:概览
- Yii框架官方指南增补系列29——缓存:数据缓存
- Yii框架官方指南系列31——缓存:页面缓存
- Yii框架官方指南系列7——基础知识:控制器
- Yii框架官方指南系列15——基础知识:最佳MVC实践
- Yii框架官方指南系列9——基础知识:视图
- Yii框架官方系列指南系列11——基础知识:模块