包 core

包 mvc

包 orm

包 form

包 database

包 helper

包 cache

包 webcontrols

包 behavior

包 exception

包 debug

类 - QDB_ActiveRecord_Abstract

orm
类层次 class QDB_ActiveRecord_Abstract
实现的接口
版本 $Id: activerecord.php 2634 2009-07-22 09:17:36Z dualface $

QDB_ActiveRecord_Abstract 类实现了 Active Record 模式

保护的属性

隐藏继承的属性

属性类型描述定义于
$_props array 对象所有属性的值 QDB_ActiveRecord_Abstract
$_class_name string 当前 ActiveRecord 对象的类名称 QDB_ActiveRecord_Abstract
$_id mixed 对象的 ID QDB_ActiveRecord_Abstract
$_meta QDB_ActiveRecord_Meta ActiveRecord 继承类使用的 Meta 对象 QDB_ActiveRecord_Abstract

公共方法

隐藏继承的方法

方法描述定义于
__construct() 构造函数 QDB_ActiveRecord_Abstract
id() 获得对象的 ID(既对象在数据库中的主键值) QDB_ActiveRecord_Abstract
idname() 获得对象的 ID 属性名(对象在数据库中的主键字段名) QDB_ActiveRecord_Abstract
isNewRecord() 确定对象是否对应数据库中的一条记录 QDB_ActiveRecord_Abstract
getMeta() 返回当前对象的元信息对象 QDB_ActiveRecord_Abstract
save() 保存对象到数据库 QDB_ActiveRecord_Abstract
__clone() 返回当前对象的一个复制品 QDB_ActiveRecord_Abstract
hasProp() 判断对象是否有特定的属性 QDB_ActiveRecord_Abstract
reload() 从数据库重新读取当前对象的属性,不影响关联的对象 QDB_ActiveRecord_Abstract
validate() 验证对象属性,失败抛出异常 QDB_ActiveRecord_Abstract
destroy() 销毁对象对应的数据库记录 QDB_ActiveRecord_Abstract
changeProps() 批量设置对象的属性值 QDB_ActiveRecord_Abstract
changePropForce() 强制改变一个属性的值,忽略属性的 readonly 设置 QDB_ActiveRecord_Abstract
changed() 确认对象或指定的对象属性是否已经被修改 QDB_ActiveRecord_Abstract
willChanged() 将指定的属性设置为“脏”状态 QDB_ActiveRecord_Abstract
changes() 获得修改过的属性 QDB_ActiveRecord_Abstract
cleanChanges() 清除所有属性或指定的“脏”状态 QDB_ActiveRecord_Abstract
toArray() 获得包含对象所有属性的数组 QDB_ActiveRecord_Abstract
toJSON() 返回对象所有属性的 JSON 字符串 QDB_ActiveRecord_Abstract
__get() 魔法方法,实现对象属性值的读取 QDB_ActiveRecord_Abstract
__set() 魔法方法,实现对象属性的设置 QDB_ActiveRecord_Abstract
__isset() 魔法方法,实现对 isset() 的支持 QDB_ActiveRecord_Abstract
__call() 魔法方法,用于调用行为插件为对象添加的方法 QDB_ActiveRecord_Abstract
offsetExists() ArrayAccess 接口方法 QDB_ActiveRecord_Abstract
offsetSet() ArrayAccess 接口方法 QDB_ActiveRecord_Abstract
offsetGet() ArrayAccess 接口方法 QDB_ActiveRecord_Abstract
offsetUnset() ArrayAccess 接口方法 QDB_ActiveRecord_Abstract
_qcoll_callback() 用于 QColl 的回调方法 QDB_ActiveRecord_Abstract
multiToJSON() 将多个 ActiveRecord 对象转换为 JSON 字符串 QDB_ActiveRecord_Abstract
__define() 返回对象的定义 QDB_ActiveRecord_Interface
find() 开启一个查询,查找符合条件的对象或对象集合 QDB_ActiveRecord_Interface
meta() 返回当前 ActiveRecord 类的元数据对象 QDB_ActiveRecord_Interface

保护的方法

隐藏继承的方法

方法描述定义于
_method() 调用 ActiveRecord 对象的动态方法 QDB_ActiveRecord_Abstract
_event() 触发事件 QDB_ActiveRecord_Abstract
_create() 在数据库中创建对象 QDB_ActiveRecord_Abstract
_update() 更新对象到数据库 QDB_ActiveRecord_Abstract
_replace() 替换数据库中的对象,如果不存在则创建新记录 QDB_ActiveRecord_Abstract
_autofill() 对当前对象的属性进行自动填充 QDB_ActiveRecord_Abstract
_typed() 返回类型化以后的值 QDB_ActiveRecord_Abstract
_before_validate() 事件回调:开始验证之前 QDB_ActiveRecord_Abstract
_before_validate_post() QDB_ActiveRecord_Abstract
_before_validate_on_create() 事件回调:为创建记录进行的验证开始之前 QDB_ActiveRecord_Abstract
_before_validate_on_create_post() QDB_ActiveRecord_Abstract
_after_validate_on_create() 事件回调:为创建记录进行的验证完成之后 QDB_ActiveRecord_Abstract
_after_validate_on_create_post() QDB_ActiveRecord_Abstract
_before_validate_on_update() 事件回调:为更新记录进行的验证开始之前 QDB_ActiveRecord_Abstract
_before_validate_on_update_post() QDB_ActiveRecord_Abstract
_after_validate_on_update() 事件回调:为更新记录进行的验证完成之后 QDB_ActiveRecord_Abstract
_after_validate_on_update_post() QDB_ActiveRecord_Abstract
_after_validate() 事件回调:验证完成之后 QDB_ActiveRecord_Abstract
_after_validate_post() QDB_ActiveRecord_Abstract
_before_save() 事件回调:保存记录之前 QDB_ActiveRecord_Abstract
_before_save_post() QDB_ActiveRecord_Abstract
_after_save() 事件回调:保存记录之后 QDB_ActiveRecord_Abstract
_after_save_post() QDB_ActiveRecord_Abstract
_before_create() 事件回调:创建记录之前 QDB_ActiveRecord_Abstract
_before_create_post() QDB_ActiveRecord_Abstract
_after_create() 事件回调:创建记录之后 QDB_ActiveRecord_Abstract
_after_create_post() QDB_ActiveRecord_Abstract
_before_update() 事件回调:更新记录之前 QDB_ActiveRecord_Abstract
_before_update_post() QDB_ActiveRecord_Abstract
_after_update() 事件回调:更新记录之后 QDB_ActiveRecord_Abstract
_after_update_post() QDB_ActiveRecord_Abstract
_before_destroy() 事件回调:删除记录之前 QDB_ActiveRecord_Abstract
_before_destroy_post() QDB_ActiveRecord_Abstract
_after_destroy() 事件回调:删除记录之后 QDB_ActiveRecord_Abstract
_after_destroy_post() QDB_ActiveRecord_Abstract
_after_initialize() 事件回调:对象构造之后 QDB_ActiveRecord_Abstract
_after_initialize_post() QDB_ActiveRecord_Abstract

属性详细说明

$_props 属性

对象所有属性的值

$_class_name 属性

当前 ActiveRecord 对象的类名称

$_id 属性

对象的 ID

如果对象的 ID 是由多个属性组成,则 $_id 是一个由多个属性值组成的名值对。

$_meta 属性

ActiveRecord 继承类使用的 Meta 对象

$_changed_props 属性

指示对象的哪些属性已经做了修改

$_is_new_record 属性

指示对象是否对应数据库中的一条记录

$__exception_trap 属性

异常捕捉器

方法详细说明

__construct() 方法

public void __construct($data, $names_style, $from_storage)

$data array|object 包含数据的名值对
$names_style int 名值对的键名风格
$from_storage boolean 是否从存储器载入数据
{return}

构造函数


id() 方法

public mixed id($cached)

$cached boolean 默认返回缓存值
{return} mixed

获得对象的 ID(既对象在数据库中的主键值)

如果对象的 ID 是由多个属性组成,则 id() 方法会返回一个数组。


idname() 方法

public string|array idname()

获得对象的 ID 属性名(对象在数据库中的主键字段名)

如果对象的 ID 是由多个属性组成,则 idname() 方法会返回一个包含多个属性名的数组。


isNewRecord() 方法

public boolean isNewRecord()

确定对象是否对应数据库中的一条记录


getMeta() 方法

public QDB_ActiveRecord_Meta getMeta()

返回当前对象的元信息对象


save() 方法

public QDB_ActiveRecord_Abstract save($recursion, $save_method)

$recursion int 保存操作递归到多少层
$save_method string 保存对象的方法
{return} QDB_ActiveRecord_Abstract 连贯接口

保存对象到数据库


__clone() 方法

public QDB_ActiveRecord_Abstract __clone()

返回当前对象的一个复制品

返回的复制品没有 ID 值,因此在保存时将会创建一个新记录。 __clone() 操作仅限当前对象的属性,对于关联的对象不会进行克隆。


hasProp() 方法

public boolean hasProp($prop_name)

$prop_name
{return} boolean

判断对象是否有特定的属性


reload() 方法

public void reload()

从数据库重新读取当前对象的属性,不影响关联的对象


validate() 方法

public array|null validate($mode)

$mode string 验证模式,可以是 general、create、update
{return} array|null 为验证通过的项目及错误信息

验证对象属性,失败抛出异常


destroy() 方法

public void destroy()

销毁对象对应的数据库记录


changeProps() 方法

public QDB_ActiveRecord_Abstract changeProps($arr, $names_style, $attr_accessible, $_from_storage, $_ignore_readonly)

$arr array|object 名值对数组
$names_style int 键名是属性名还是字段名
$attr_accessible array|string 指定哪些属性允许设置
$_from_storage boolean 内部参数
$_ignore_readonly boolean 内部参数
{return} QDB_ActiveRecord_Abstract 连贯接口

批量设置对象的属性值

如果指定了 $attr_accessible 参数,则会忽略 ActiveRecord 类的 attr_accessible 和 attr_protected 设置。


changePropForce() 方法

public QDB_ActiveRecord_Abstract changePropForce($prop_name, $prop_value)

$prop_name string 要改变的属性名
$prop_value mixed 属性的值
{return} QDB_ActiveRecord_Abstract 连贯接口

强制改变一个属性的值,忽略属性的 readonly 设置


changed() 方法

public boolean changed($props_name)

$props_name string|array
{return} boolean

确认对象或指定的对象属性是否已经被修改


willChanged() 方法

public QDB_ActiveRecord_Abstract willChanged($props_name)

$props_name string|array
{return} QDB_ActiveRecord_Abstract 连贯接口

将指定的属性设置为“脏”状态


changes() 方法

public array changes()

获得修改过的属性


cleanChanges() 方法

public QDB_ActiveRecord_Abstract cleanChanges($props)

$props string|array
{return} QDB_ActiveRecord_Abstract 连贯接口

清除所有属性或指定的“脏”状态


toArray() 方法

public array toArray($recursion, $names_style)

$recursion int
$names_style int
{return} array

获得包含对象所有属性的数组


toJSON() 方法

public string toJSON($recursion, $names_style)

$recursion int
$names_style int
{return} string

返回对象所有属性的 JSON 字符串


__get() 方法

public mixed __get($prop_name)

$prop_name string
{return} mixed

魔法方法,实现对象属性值的读取


__set() 方法

public void __set($prop_name, $value)

$prop_name string
$value mixed
{return}

魔法方法,实现对象属性的设置


__isset() 方法

public boolean __isset($prop_name)

$prop_name string
{return} boolean

魔法方法,实现对 isset() 的支持


__call() 方法

public mixed __call($method, $args)

$method string
$args array
{return} mixed

魔法方法,用于调用行为插件为对象添加的方法


offsetExists() 方法

public boolean offsetExists($prop_name)

$prop_name string
{return} boolean

ArrayAccess 接口方法


offsetSet() 方法

public void offsetSet($prop_name, $value)

$prop_name string
$value mixed
{return}

ArrayAccess 接口方法


offsetGet() 方法

public boolean offsetGet($prop_name)

$prop_name string
{return} boolean

ArrayAccess 接口方法


offsetUnset() 方法

public void offsetUnset($prop_name)

$prop_name string
{return}

ArrayAccess 接口方法


_qcoll_callback() 方法

public static void _qcoll_callback()

用于 QColl 的回调方法


multiToJSON() 方法

public static string multiToJSON($objects, $recursion, $names_style)

$objects array
$recursion int
$names_style int
{return} string

将多个 ActiveRecord 对象转换为 JSON 字符串


_method() 方法

protected mixed _method($method)

$method string
{return} mixed

调用 ActiveRecord 对象的动态方法


_event() 方法

protected void _event($event)

$event int
{return}

触发事件


_create() 方法

protected void _create($recursion)

$recursion int
{return}

在数据库中创建对象


_update() 方法

protected void _update($recursion)

$recursion int
{return}

更新对象到数据库


_replace() 方法

protected void _replace($recursion)

$recursion int
{return}

替换数据库中的对象,如果不存在则创建新记录


_autofill() 方法

protected void _autofill($mode)

$mode string
{return}

对当前对象的属性进行自动填充


_typed() 方法

protected static mixed _typed($value, $ptype)

$value mixed
$ptype string
{return} mixed

返回类型化以后的值


_before_validate() 方法

protected void _before_validate()

事件回调:开始验证之前


_before_validate_post() 方法

protected void _before_validate_post()


_before_validate_on_create() 方法

protected void _before_validate_on_create()

事件回调:为创建记录进行的验证开始之前


_before_validate_on_create_post() 方法

protected void _before_validate_on_create_post()


_after_validate_on_create() 方法

protected void _after_validate_on_create()

事件回调:为创建记录进行的验证完成之后


_after_validate_on_create_post() 方法

protected void _after_validate_on_create_post()


_before_validate_on_update() 方法

protected void _before_validate_on_update()

事件回调:为更新记录进行的验证开始之前


_before_validate_on_update_post() 方法

protected void _before_validate_on_update_post()


_after_validate_on_update() 方法

protected void _after_validate_on_update()

事件回调:为更新记录进行的验证完成之后


_after_validate_on_update_post() 方法

protected void _after_validate_on_update_post()


_after_validate() 方法

protected void _after_validate()

事件回调:验证完成之后


_after_validate_post() 方法

protected void _after_validate_post()


_before_save() 方法

protected void _before_save()

事件回调:保存记录之前


_before_save_post() 方法

protected void _before_save_post()


_after_save() 方法

protected void _after_save()

事件回调:保存记录之后


_after_save_post() 方法

protected void _after_save_post()


_before_create() 方法

protected void _before_create()

事件回调:创建记录之前


_before_create_post() 方法

protected void _before_create_post()


_after_create() 方法

protected void _after_create()

事件回调:创建记录之后


_after_create_post() 方法

protected void _after_create_post()


_before_update() 方法

protected void _before_update()

事件回调:更新记录之前


_before_update_post() 方法

protected void _before_update_post()


_after_update() 方法

protected void _after_update()

事件回调:更新记录之后


_after_update_post() 方法

protected void _after_update_post()


_before_destroy() 方法

protected void _before_destroy()

事件回调:删除记录之前


_before_destroy_post() 方法

protected void _before_destroy_post()


_after_destroy() 方法

protected void _after_destroy()

事件回调:删除记录之后


_after_destroy_post() 方法

protected void _after_destroy_post()


_after_initialize() 方法

protected void _after_initialize()

事件回调:对象构造之后


_after_initialize_post() 方法

protected void _after_initialize_post()