| 包 | form |
|---|---|
| 类层次 | QForm_Group » QForm_Element |
| 实现的接口 | |
| 版本 | $Id: group.php 2447 2009-04-28 05:40:53Z jerry $ |
类 QForm_Group 是容纳多个元素或群组的集合
| 属性 | 类型 | 描述 | 定义于 |
|---|---|---|---|
| $_elements | QColl | 聚合的元素 | QForm_Group |
| $_attrs | array | 属性值 | QForm_Element |
| $_owner | QForm_Group | 该元素的所有者 | QForm_Element |
| $_unfiltered_value | mixed | 未过滤的值 | QForm_Element |
| $_filters | array | 过滤器链 | QForm_Element |
| $_validations | array | 验证规则 | QForm_Element |
| $_is_valid | boolean | 数据的验证结果 | QForm_Element |
| $_error_msg | string | 验证失败的信息 | QForm_Element |
| $_locked | boolean | 元素是否锁定,锁定元素不接受 import 和validate 赋值 | QForm_Element |
| 方法 | 描述 | 定义于 |
|---|---|---|
| __construct() | 构造函数 | QForm_Group |
| changeNestedName() | 设置嵌套名 | QForm_Group |
| add() | 添加一个元素,并返回该元素对象 | QForm_Group |
| remove() | 从群组中删除指定的元素 | QForm_Group |
| loadFromConfig() | 从配置批量添加元素 | QForm_Group |
| addValidations() | 为群组的元素添加验证规则 | QForm_Group |
| cleanValidations() | 清除该组所有元素的验证规则 | QForm_Group |
| element() | 返回指定 ID 的子元素 | QForm_Group |
| existsElement() | 检查指定的元素是否存在 | QForm_Group |
| elements() | 返回包含所有元素的集合 | QForm_Group |
| isGroup() | 指示当前元素是一个组 | QForm_Group |
| import() | 导入数据,但不进行过滤和验证 | QForm_Group |
| isValid() | 确认群组所有元素的有效性 | QForm_Group |
| invalidate() | 指示群组的数据为无效状态 | QForm_Group |
| values() | 返回包含群组所有元素值的数组 | QForm_Group |
| value() | 获得表单群组中所有元素的值 | QForm_Group |
| unfilteredValues() | 返回包含群组所有元素未过滤值得数组 | QForm_Group |
| unfilteredValue() | 返回包含群组所有元素未过滤值得数组 | QForm_Group |
| lock() | 锁定元素 | QForm_Element |
| unlock() | 元素解锁 | QForm_Element |
| __get() | 魔法方法,以便通过对象属性直接访问元素的属性值 | QForm_Element |
| __set() | 魔法方法,以便通过指定对象属性的方式来修改元素的属性值 | QForm_Element |
| get() | 获得属性值,如果属性不存在返回 $default 参数指定的默认值 | QForm_Element |
| set() | 修改属性值 | QForm_Element |
| dataBinding() | 确定数据绑定状态 | QForm_Element |
| enableDataBinding() | 修改数据绑定状态 | QForm_Element |
| nestedName() | 返回群组的嵌套名 | QForm_Element |
| owner() | 返回元素的所有者 | QForm_Element |
| attrs() | 返回所有不是以“_”开头的属性的值 | QForm_Element |
| allAttrs() | 返回所有属性的值 | QForm_Element |
| addFilters() | 添加过滤器 | QForm_Element |
| errorMsg() | 返回验证错误信息 | QForm_Element |
public void __construct($id, $attrs, $owner)
| $id | string | 表单 ID |
| $attrs | array | 属性 |
| $owner | ||
| {return} |
构造函数
public QForm_Element_Abstract changeNestedName($name)
| $name | string | |
| {return} | QForm_Element_Abstract |
设置嵌套名
public QForm_Element add($type, $id, $attrs)
| $type | enum | 要添加的元素类型 |
| $id | string | 元素 ID |
| $attrs | array | 元素属性 |
| {return} | QForm_Element |
添加一个元素,并返回该元素对象
$form->add(QForm::ELEMENT, 'title', array('_ui' => 'textbox', 'size' => 40));
$type 参数只能是 QForm::ELEMENT 或 QForm::GROUP 两者之一。
public QForm_Group remove($id)
| $id | string | |
| {return} | QForm_Group |
从群组中删除指定的元素
public QForm_Group loadFromConfig($config)
| $config | array | |
| {return} | QForm_Group |
从配置批量添加元素
具体用法参考开发者手册关于表单的章节。
public QForm_Group addValidations($source)
| $source | mixed | 要添加的验证规则 |
| {return} | QForm_Group | 返回群组对象本身,实现连贯接口 |
为群组的元素添加验证规则
验证规则可以是一个多维数组:
$group->addValidations(array( // 为该群组的 title 元素添加验证规则 'title' => array('max_length', 5, '不能超过5个字符'), // 为 body 元素添加验证规则 'body' => array( array('not_empty', '不能为空'), array('min_length', 10, '不能少于10个字符'), ), ));
如果要将 ActiveRecord 模型的验证规则添加给元素,可以使用:
// 将 Post 模型中与该表单元素同名属性的验证规则添加到表单元素中 $group->addValidations(Post::meta()); // 或者只从指定属性取得验证规则 $group->addValidations(Post::meta(), 'title, body'); // 或者将指定属性的规则添加到指定元素 // 将 Post 模型 name 属性的验证规则添加到群组中的 title 元素 $group->addValidations(Post::meta(), array('name' => 'title', 'body'));
public QForm_Group cleanValidations()
清除该组所有元素的验证规则
public QForm_Element element($id)
| $id | string | |
| {return} | QForm_Element |
返回指定 ID 的子元素
public boolean existsElement($id)
| $id | string | |
| {return} | boolean |
检查指定的元素是否存在
public QColl elements()
返回包含所有元素的集合
public boolean isGroup()
指示当前元素是一个组
public QForm_Group import($data, $parent_data)
| $data | array | |
| $parent_data | ||
| {return} | QForm_Group |
导入数据,但不进行过滤和验证
public boolean isValid()
确认群组所有元素的有效性
public QForm_Group invalidate($error)
| $error | mixed | |
| {return} | QForm_Group |
指示群组的数据为无效状态
public array values()
返回包含群组所有元素值的数组
public array value()
获得表单群组中所有元素的值
public array unfilteredValues()
返回包含群组所有元素未过滤值得数组
public array unfilteredValue()
返回包含群组所有元素未过滤值得数组
protected void _values($ret, $parent_data, $return_unfiltered_value)
| $ret | ||
| $parent_data | ||
| $return_unfiltered_value | ||
| {return} |
提取群组所有元素值的数组