Yii框架官方指南系列20——使用表单:批量收集表格输入
2014-11-07 00:00
549 查看
有时我们想通过批量模式收集用户输入。也就是说, 用户可以为多个模型实例输入信息并将它们一次性提交。 我们将此称为 表格输入(tabular input) ,因为这些输入项通常以 HTML 表格的形式呈现。
要使用表格输入,我们首先需要创建或填充一个模型实例数组,取决于我们是想插入还是更新数据。 然后我们从 $_POST 变量中提取用户输入的数据并将其赋值到每个模型。和单模型输入稍有不同的一点就是: 我们要使用 $_POST['ModelClass'][$i] 提取输入的数据而不是使用 $_POST['ModelClass']。
要使用表格输入,我们首先需要创建或填充一个模型实例数组,取决于我们是想插入还是更新数据。 然后我们从 $_POST 变量中提取用户输入的数据并将其赋值到每个模型。和单模型输入稍有不同的一点就是: 我们要使用 $_POST['ModelClass'][$i] 提取输入的数据而不是使用 $_POST['ModelClass']。
public function actionBatchUpdate() { // 假设每一项(item)是一个 'Item' 类的实例, // 提取要通过批量模式更新的项 $items=$this->getItemsToUpdate(); if(isset($_POST['Item'])) { $valid=true; foreach($items as $i=>$item) { if(isset($_POST['Item'][$i])) $item->attributes=$_POST['Item'][$i]; $valid=$valid && $item->validate(); } if($valid) // 如果所有项目有效 // ...则在此处做一些操作 } // 显示视图收集表格输入 $this->render('batchUpdate',array('items'=>$items)); }
相关文章推荐
- Yii框架官方指南系列19——使用表单:创建表单
- Yii框架官方指南系列16——使用表单:概览
- Yii框架官方指南系列21——使用表单:使用表单生成器(CForm)
- Yii框架官方指南系列18——使用表单:创建动作
- Yii框架官方指南系列17——使用表单:创建模型
- Yii框架官方指南系列24——使用数据库:Query Builder
- Yii框架官方指南系列49——专题:使用非主流模板语法
- Yii框架官方指南系列25——使用数据库:Active Record
- Yii框架官方指南系列23——使用数据库:数据访问对象(DAO)
- Yii框架官方指南系列增补版27——使用数据库:数据库迁移
- Yii框架官方指南系列22——使用数据库:概览
- Yii框架官方指南系列34——扩展Yii:使用扩展
- Yii框架官方指南系列36——扩展Yii:使用第三方库
- Yii框架官方指南系列26——使用数据库:关系型 Active Record
- Yii框架官方指南系列32——缓存:动态内容(Dynamic Content)
- Yii框架官方指南系列28——缓存:概览
- Yii框架官方指南系列10——基础知识:组件
- Yii框架官方指南系列31——缓存:页面缓存
- Yii框架官方指南系列9——基础知识:视图
- Yii框架官方指南系列8——基础知识:模型