包 | 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} |
提取群组所有元素值的数组