您的位置:首页 > 编程语言 > PHP开发

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 代码:
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));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: