包 core

包 mvc

包 orm

包 form

包 database

包 helper

包 cache

包 webcontrols

包 behavior

包 exception

包 debug

类 - QForm

form
类层次 QForm » QForm_Group » QForm_Element
实现的接口
版本 $Id: form.php 2401 2009-04-07 03:50:08Z dualface $

类 QForm 封装了表单的数据和行为

有关 QForm 类的详细使用,请参考开发者手册的相关章节。

保护的属性

隐藏继承的属性

属性类型描述定义于
$_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
loadFromConfig() 从配置载入表单设置和元素 QForm
loadFromConfigFile() 从一个 YAML 文件载入表单设置和元素 QForm
validate() 导入数据并验证,返回验证结果 QForm
changeNestedName() 设置嵌套名 QForm_Group
add() 添加一个元素,并返回该元素对象 QForm_Group
remove() 从群组中删除指定的元素 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

保护的方法

隐藏继承的方法

方法描述定义于
_after_created() 表单对象构造后调用的事件方法 QForm
_before_validate() 表单对象验证之前调用的事件方法 QForm
_after_validate() 表单对象验证之后调用的事件方法 QForm
_after_validate_failed() 当表单验证失败时调用的事件方法 QForm
_after_validate_successed() 当表单验证成功时调用的事件方法 QForm
_values() 提取群组所有元素值的数组 QForm_Group

方法详细说明

__construct() 方法

public void __construct($id, $action, $method, $attrs)

$id string 表单 ID
$action string 表单提交的目的地 URL
$method string 表单提交方法
$attrs arary 附加的属性
{return}

构造函数

表单对象构造后,会调用 _after_created() 方法。 QForm 继承类可以在 _after_created() 方法中做进一步的设置和初始化。


loadFromConfig() 方法

public QForm loadFromConfig($config)

$config array 包含表单配置的数组
{return} QForm 返回表单对象本身,实现连贯接口

从配置载入表单设置和元素

$form = QForm();
$config = Helper_YAML::loadCached('form_config.yaml');
$form->loadFromConfig($config);

loadFromConfigFile() 方法

public QForm loadFromConfigFile($filename, $cached)

$filename string 要载入的配置文件
$cached bollean 是否缓存配置文件
{return} QForm 返回表单对象本身,实现连贯接口

从一个 YAML 文件载入表单设置和元素


validate() 方法

public boolean validate($data, $failed)

$data mixed 要导入的数据,可以是数组或者实现了 ArrayAccess 接口的对象,例如 QColl
$failed array 如果需要确定哪些数据没有验证通过,可以提供 $failed 参数。 验证结果后该参数将包含所有没有通过验证的表单元素的名字。
{return} boolean 验证结果

导入数据并验证,返回验证结果

通过 validate() 方法,数据将被导入表单对象。 并在导入时进行过滤和验证,最后返回验证结果。

if ($form->validate($_POST))
{
    ... 验证通过
}

验证后的数据使用 values() 方法可以取得。 而未过滤的原始数据使用 unfilteredValues() 方法可以取得。


_after_created() 方法

protected void _after_created()

表单对象构造后调用的事件方法


_before_validate() 方法

protected void _before_validate($data)

$data mixed 要验证的数据
{return}

表单对象验证之前调用的事件方法


_after_validate() 方法

protected void _after_validate($data)

$data mixed 要验证的数据
{return}

表单对象验证之后调用的事件方法


_after_validate_failed() 方法

protected void _after_validate_failed()

当表单验证失败时调用的事件方法


_after_validate_successed() 方法

protected void _after_validate_successed()

当表单验证成功时调用的事件方法