包 core

包 mvc

包 orm

包 form

包 database

包 helper

包 cache

包 webcontrols

包 behavior

包 exception

包 debug

类 - QForm_Group

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

保护的方法

隐藏继承的方法

方法描述定义于
_values() 提取群组所有元素值的数组 QForm_Group

属性详细说明

$_elements 属性

聚合的元素

方法详细说明

__construct() 方法

public void __construct($id, $attrs, $owner)

$id string 表单 ID
$attrs array 属性
$owner
{return}

构造函数


changeNestedName() 方法

public QForm_Element_Abstract changeNestedName($name)

$name string
{return} QForm_Element_Abstract

设置嵌套名


add() 方法

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 两者之一。


remove() 方法

public QForm_Group remove($id)

$id string
{return} QForm_Group

从群组中删除指定的元素


loadFromConfig() 方法

public QForm_Group loadFromConfig($config)

$config array
{return} QForm_Group

从配置批量添加元素

具体用法参考开发者手册关于表单的章节。


addValidations() 方法

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'));

cleanValidations() 方法

public QForm_Group cleanValidations()

清除该组所有元素的验证规则


element() 方法

public QForm_Element element($id)

$id string
{return} QForm_Element

返回指定 ID 的子元素


existsElement() 方法

public boolean existsElement($id)

$id string
{return} boolean

检查指定的元素是否存在


elements() 方法

public QColl elements()

返回包含所有元素的集合


isGroup() 方法

public boolean isGroup()

指示当前元素是一个组


import() 方法

public QForm_Group import($data, $parent_data)

$data array
$parent_data
{return} QForm_Group

导入数据,但不进行过滤和验证


isValid() 方法

public boolean isValid()

确认群组所有元素的有效性


invalidate() 方法

public QForm_Group invalidate($error)

$error mixed
{return} QForm_Group

指示群组的数据为无效状态


values() 方法

public array values()

返回包含群组所有元素值的数组


value() 方法

public array value()

获得表单群组中所有元素的值


unfilteredValues() 方法

public array unfilteredValues()

返回包含群组所有元素未过滤值得数组


unfilteredValue() 方法

public array unfilteredValue()

返回包含群组所有元素未过滤值得数组


_values() 方法

protected void _values($ret, $parent_data, $return_unfiltered_value)

$ret
$parent_data
$return_unfiltered_value
{return}

提取群组所有元素值的数组