包 core

包 mvc

包 orm

包 form

包 database

包 helper

包 cache

包 webcontrols

包 behavior

包 exception

包 debug

类 - QDB_ActiveRecord_Meta

orm
类层次 class QDB_ActiveRecord_Meta
实现的接口

QDB_ActiveRecord_Meta 类封装了 QDB_ActiveRecord_Abstract 继承类的元信息

公开的属性

隐藏继承的属性

属性类型描述定义于
$idname array ID 属性名 QDB_ActiveRecord_Meta
$idname_count int ID 属性包含多少个属性 QDB_ActiveRecord_Meta
$table_meta array 数据表的元信息 QDB_ActiveRecord_Meta
$validations array 验证规则 QDB_ActiveRecord_Meta
$attr_accessible array 允许使用 mass-assignment 方式赋值的属性 QDB_ActiveRecord_Meta
$attr_protected array 拒绝使用 mass-assignment 方式赋值的属性 QDB_ActiveRecord_Meta
$create_reject array 创建时要过滤的属性 QDB_ActiveRecord_Meta
$update_reject array 更新时要过滤的属性 QDB_ActiveRecord_Meta
$create_autofill array 创建时要自动填充的属性 QDB_ActiveRecord_Meta
$update_autofill array 更新时要自动填充的属性 QDB_ActiveRecord_Meta
$props2fields array 属性到字段名的映射 QDB_ActiveRecord_Meta
$fields2props array 字段名到属性的映射 QDB_ActiveRecord_Meta
$props array of properties meta 所有属性的元信息 QDB_ActiveRecord_Meta
$default_props array 所有属性的默认值,用于初始化一个新的 ActiveRecord 实例 QDB_ActiveRecord_Meta
$associations array of QDB_ActiveRecord_Association_Abstract ActiveRecord 之间的关联 QDB_ActiveRecord_Meta
$callbacks array of callbacks 事件钩子 QDB_ActiveRecord_Meta
$methods array of callbacks 扩展的方法 QDB_ActiveRecord_Meta
$static_methods array of callbacks 扩展的静态方法 QDB_ActiveRecord_Meta
$table QDB_Table 表数据入口 QDB_ActiveRecord_Meta
$class_name string Meta 对应的 ActiveRecord 继承类 QDB_ActiveRecord_Meta
$inherit_base_class string ActiveRecord 的基础类 QDB_ActiveRecord_Meta
$inherit_type_field string 用于指定继承类名称的字段名 QDB_ActiveRecord_Meta
$belongsto_props array BELONGS_TO 关联的 source_key QDB_ActiveRecord_Meta

保护的属性

隐藏继承的属性

属性类型描述定义于
$_behaviors array of QDB_ActiveRecord_Behavior_Abstract objects 行为插件对象 QDB_ActiveRecord_Meta
$_associations_inited boolean 指示是否已经初始化了对象的关联 QDB_ActiveRecord_Meta
$_assoc_types array 可用的对象聚合类型 QDB_ActiveRecord_Meta
$_validation_policy_options array 验证策略可用的选项 QDB_ActiveRecord_Meta
$_metas array of QDB_ActiveRecord_Meta 所有 ActiveRecord 继承类的 Meta 对象 QDB_ActiveRecord_Meta

公共方法

隐藏继承的方法

方法描述定义于
instance() 获得指定指定 ActiveRecord 继承类的元对象唯一实例 QDB_ActiveRecord_Meta
newObject() 返回一个根据 $data 数组构造的 ActiveRecord 继承类实例 QDB_ActiveRecord_Meta
createFromTable() 根据表名构造一个元对象 QDB_ActiveRecord_Meta
find() 开启一个查询 QDB_ActiveRecord_Meta
findByArgs() 开启一个查询,并根据提供的参数设置查询对象 QDB_ActiveRecord_Meta
updateWhere() 更新符合条件的对象 QDB_ActiveRecord_Meta
updateDbWhere() 更新符合条件的记录 QDB_ActiveRecord_Meta
destroyWhere() 实例化符合条件的对象,并调用这些对象的 destroy() 方法,返回被删除的对象数 QDB_ActiveRecord_Meta
deleteWhere() 从数据库中直接删除符合条件的对象 QDB_ActiveRecord_Meta
validate() 对数据进行验证,返回所有未通过验证数据的错误信息 QDB_ActiveRecord_Meta
relatedObjects() 获得对象的关联对象 QDB_ActiveRecord_Meta
hasBindBehavior() 检查是否绑定了指定的行为插件 QDB_ActiveRecord_Meta
bindBehaviors() 绑定行为插件 QDB_ActiveRecord_Meta
unbindBehaviors() 撤销与指定行为插件的绑定 QDB_ActiveRecord_Meta
addDynamicMethod() 添加一个动态方法 QDB_ActiveRecord_Meta
removeDynamicMethod() 删除指定的动态方法 QDB_ActiveRecord_Meta
addStaticMethod() 添加一个静态方法 QDB_ActiveRecord_Meta
removeStaticMethod() 删除指定的静态方法 QDB_ActiveRecord_Meta
setPropSetter() 设置属性的 setter 方法 QDB_ActiveRecord_Meta
unsetPropSetter() 取消属性的 setter 方法 QDB_ActiveRecord_Meta
setPropGetter() 设置属性的 getter 方法 QDB_ActiveRecord_Meta
unsetPropGetter() 取消属性的 getter 方法 QDB_ActiveRecord_Meta
addEventHandler() 为指定事件添加处理方法 QDB_ActiveRecord_Meta
addExceptionTrap() 为指定对象添加异常捕捉器 QDB_ActiveRecord_Meta
removeEventHandler() 删除指定事件的一个处理方法 QDB_ActiveRecord_Meta
addProp() 添加一个属性 QDB_ActiveRecord_Meta
addAssoc() 添加一个对象关联 QDB_ActiveRecord_Meta
hasAssoc() 判断是否有指定关联 QDB_ActiveRecord_Meta
assoc() 访问指定属性对应的关联 QDB_ActiveRecord_Meta
removeAssoc() 移除一个关联 QDB_ActiveRecord_Meta
addValidation() 为指定属性添加一个验证规则 QDB_ActiveRecord_Meta
propValidations() 取得指定属性的所有验证规则 QDB_ActiveRecord_Meta
allValidations() 取得所有属性的所有验证规则 QDB_ActiveRecord_Meta
removePropValidations() 清除指定属性的所有验证规则 QDB_ActiveRecord_Meta
removeAllValidations() 清除所有属性的所有验证规则 QDB_ActiveRecord_Meta
__call() 调用 ActiveRecord 继承类定义的自定义静态方法 QDB_ActiveRecord_Meta

保护的方法

隐藏继承的方法

方法描述定义于
__construct() 构造函数 QDB_ActiveRecord_Meta
_prepareValidationRules() 准备验证策略 QDB_ActiveRecord_Meta
_tableByName() 根据数据表名称获得表数据入口对象 QDB_ActiveRecord_Meta
_tableByClass() 根据类名称获得表数据入口对象 QDB_ActiveRecord_Meta
_init1() 第一步初始化 QDB_ActiveRecord_Meta
_init2() 第二步初始化 QDB_ActiveRecord_Meta

属性详细说明

$idname 属性

ID 属性名

$idname_count 属性

ID 属性包含多少个属性

$table_meta 属性

数据表的元信息

$validations 属性

验证规则

$attr_accessible 属性

允许使用 mass-assignment 方式赋值的属性

如果指定了 attr_accessible,则忽略 attr_protected 的设置。

$attr_protected 属性

拒绝使用 mass-assignment 方式赋值的属性

$create_reject 属性

创建时要过滤的属性

$update_reject 属性

更新时要过滤的属性

$create_autofill 属性

创建时要自动填充的属性

$update_autofill 属性

更新时要自动填充的属性

$props2fields 属性

属性到字段名的映射

$fields2props 属性

字段名到属性的映射

$props 属性

所有属性的元信息

$default_props 属性

所有属性的默认值,用于初始化一个新的 ActiveRecord 实例

$associations 属性

ActiveRecord 之间的关联

array (
    'prop_name' => $assoc
)

如果关联已经初始化,则 $assoc 是一个 QDB_ActiveRecord_Association_Abstract 继承类实例。 否则 $assoc 为 false。

$callbacks 属性

事件钩子

$methods 属性

扩展的方法

$static_methods 属性

扩展的静态方法

$table 属性

表数据入口

$class_name 属性

Meta 对应的 ActiveRecord 继承类

$inherit_base_class 属性

ActiveRecord 的基础类

$inherit_type_field 属性

用于指定继承类名称的字段名

$belongsto_props 属性

BELONGS_TO 关联的 source_key

$_behaviors 属性

行为插件对象

$_associations_inited 属性

指示是否已经初始化了对象的关联

$_assoc_types 属性

可用的对象聚合类型

$_validation_policy_options 属性

验证策略可用的选项

$_metas 属性

所有 ActiveRecord 继承类的 Meta 对象

方法详细说明

__construct() 方法

protected void __construct($class)

$class string
{return}

构造函数


instance() 方法

public static QDB_ActiveRecord_Meta instance($class)

$class string
{return} QDB_ActiveRecord_Meta

获得指定指定 ActiveRecord 继承类的元对象唯一实例


newObject() 方法

public QDB_ActiveRecord_Abstract newObject($data)

$data
{return} QDB_ActiveRecord_Abstract

返回一个根据 $data 数组构造的 ActiveRecord 继承类实例


createFromTable() 方法

public void createFromTable($table_name, $class_name)

$table_name
$class_name
{return}

根据表名构造一个元对象


find() 方法

public QDB_Select find()

开启一个查询


findByArgs() 方法

public QDB_Select findByArgs($args)

$args array
{return} QDB_Select

开启一个查询,并根据提供的参数设置查询对象


updateWhere() 方法

public void updateWhere($attribs)

$attribs array
{return}

更新符合条件的对象


updateDbWhere() 方法

public void updateDbWhere()

更新符合条件的记录


destroyWhere() 方法

public int destroyWhere()

实例化符合条件的对象,并调用这些对象的 destroy() 方法,返回被删除的对象数


deleteWhere() 方法

public void deleteWhere()

从数据库中直接删除符合条件的对象

与 destroyWhere() 不同,deleteWhere() 会直接从数据库中删除符合条件的记录。 而不是先把符合条件的对象查询出来再调用对象的 destroy() 方法进行删除。

因此,deleteWhere() 速度更快,但无法处理对象间的关联关系。


validate() 方法

public array validate($data, $props, $mode)

$data array 要验证的数据
$props array|string 指定仅仅验证哪些属性
$mode string 验证模式
{return} array 所有没有通过验证的属性名称及验证规则

对数据进行验证,返回所有未通过验证数据的错误信息


relatedObjects() 方法

public QDB_ActiveRecord_Abstract|QDB_ActiveRecord_Association_Coll relatedObjects($obj, $prop_name)

$obj QDB_ActiveRecord_Abstract
$prop_name string
{return} QDB_ActiveRecord_Abstract|QDB_ActiveRecord_Association_Coll

获得对象的关联对象


hasBindBehavior() 方法

public void hasBindBehavior($name)

$name
{return}

检查是否绑定了指定的行为插件


bindBehaviors() 方法

public QDB_ActiveRecord_Meta bindBehaviors($behaviors, $config)

$behaviors string|array
$config array
{return} QDB_ActiveRecord_Meta

绑定行为插件


unbindBehaviors() 方法

public QDB_ActiveRecord_Meta unbindBehaviors($behaviors)

$behaviors string|array
{return} QDB_ActiveRecord_Meta

撤销与指定行为插件的绑定


addDynamicMethod() 方法

public QDB_ActiveRecord_Meta addDynamicMethod($method_name, $callback, $custom_parameters)

$method_name string
$callback callback
$custom_parameters array
{return} QDB_ActiveRecord_Meta

添加一个动态方法


removeDynamicMethod() 方法

public QDB_ActiveRecord_Meta removeDynamicMethod($method_name)

$method_name string
{return} QDB_ActiveRecord_Meta

删除指定的动态方法


addStaticMethod() 方法

public QDB_ActiveRecord_Meta addStaticMethod($method_name, $callback, $custom_parameters)

$method_name string
$callback callback
$custom_parameters array
{return} QDB_ActiveRecord_Meta

添加一个静态方法


removeStaticMethod() 方法

public QDB_ActiveRecord_Meta removeStaticMethod($method_name)

$method_name string
{return} QDB_ActiveRecord_Meta

删除指定的静态方法


setPropSetter() 方法

public QDB_ActiveRecord_Meta setPropSetter($prop_name, $callback, $custom_parameters)

$prop_name string
$callback callback
$custom_parameters array
{return} QDB_ActiveRecord_Meta

设置属性的 setter 方法


unsetPropSetter() 方法

public QDB_ActiveRecord_Meta unsetPropSetter($prop_name)

$prop_name string
{return} QDB_ActiveRecord_Meta

取消属性的 setter 方法


setPropGetter() 方法

public QDB_ActiveRecord_Meta setPropGetter($name, $callback, $custom_parameters)

$name string
$callback callback
$custom_parameters array
{return} QDB_ActiveRecord_Meta

设置属性的 getter 方法


unsetPropGetter() 方法

public QDB_ActiveRecord_Meta unsetPropGetter($prop_name)

$prop_name string
{return} QDB_ActiveRecord_Meta

取消属性的 getter 方法


addEventHandler() 方法

public QDB_ActiveRecord_Meta addEventHandler($event_type, $callback, $custom_parameters)

$event_type int
$callback callback
$custom_parameters array
{return} QDB_ActiveRecord_Meta

为指定事件添加处理方法


addExceptionTrap() 方法

public QDB_ActiveRecord_Meta addExceptionTrap($obj, $exception_type, $callback, $custom_parameters)

$obj QDB_ActiveRecord_Abstract
$exception_type int
$callback callback
$custom_parameters array
{return} QDB_ActiveRecord_Meta

为指定对象添加异常捕捉器


removeEventHandler() 方法

public QDB_ActiveRecord_Meta removeEventHandler($event_type, $callback)

$event_type int
$callback callback
{return} QDB_ActiveRecord_Meta

删除指定事件的一个处理方法


addProp() 方法

public QDB_ActiveRecord_Meta addProp($prop_name, $config)

$prop_name string
$config array
{return} QDB_ActiveRecord_Meta

添加一个属性


addAssoc() 方法

public QDB_ActiveRecord_Meta addAssoc($prop_name, $assoc_type, $config)

$prop_name string
$assoc_type int
$config array
{return} QDB_ActiveRecord_Meta

添加一个对象关联

$prop_name 参数指定使用 ActiveRecord 对象的什么属性来引用关联的对象。 例如“文章”对象的 comments 属性引用了多个关联的“评论”对象。

$assoc_type 指定了关联的类型,可以是 QDB::BELONGS_TO、QDB::HAS_MANY、QDB::HAS_ONE 或 QDB::MANY_TO_MANY。

$config 指定了关联的属性,可用的属性有多项。


hasAssoc() 方法

public boolean hasAssoc($prop_name)

$prop_name
{return} boolean

判断是否有指定关联


assoc() 方法

public QDB_ActiveRecord_Association_Abstract assoc($prop_name)

$prop_name string
{return} QDB_ActiveRecord_Association_Abstract

访问指定属性对应的关联


removeAssoc() 方法

public QDB_ActiveRecord_Meta removeAssoc($prop_name)

$prop_name string
{return} QDB_ActiveRecord_Meta

移除一个关联


addValidation() 方法

public QDB_ActiveRecord_Meta addValidation($prop_name, $validation)

$prop_name string
$validation mixed
{return} QDB_ActiveRecord_Meta

为指定属性添加一个验证规则


propValidations() 方法

public array propValidations($prop_name)

$prop_name string
{return} array

取得指定属性的所有验证规则


allValidations() 方法

public array allValidations()

取得所有属性的所有验证规则


removePropValidations() 方法

public QDB_ActiveRecord_Meta removePropValidations($prop_name)

$prop_name string
{return} QDB_ActiveRecord_Meta

清除指定属性的所有验证规则


removeAllValidations() 方法

public QDB_ActiveRecord_Meta removeAllValidations()

清除所有属性的所有验证规则


__call() 方法

public mixed __call($method_name, $args)

$method_name string
$args array
{return} mixed

调用 ActiveRecord 继承类定义的自定义静态方法


_prepareValidationRules() 方法

protected void _prepareValidationRules($policies, $ref, $set_policy)

$policies array 要解析的策略
$ref array 用于 include 参考的策略
$set_policy boolean 是否指定验证策略
{return}

准备验证策略


_tableByName() 方法

protected QDB_Table _tableByName($table_name, $table_config)

$table_name string
$table_config array
{return} QDB_Table

根据数据表名称获得表数据入口对象


_tableByClass() 方法

protected QDB_Table _tableByClass($table_class, $table_config)

$table_class string
$table_config array
{return} QDB_Table

根据类名称获得表数据入口对象


_init1() 方法

protected void _init1($class)

$class string
{return}

第一步初始化


_init2() 方法

protected void _init2()

第二步初始化

避免因为关联到自身造成循环引用。