包 core

包 mvc

包 orm

包 form

包 database

包 helper

包 cache

包 webcontrols

包 behavior

包 exception

包 debug

类 - QDB_ActiveRecord_Association_Abstract

orm
类层次 class QDB_ActiveRecord_Association_Abstract
版本 $Id: abstract.php 2233 2009-02-11 07:48:41Z dualface $

QDB_ActiveRecord_Association_Abstract 封装 ActiveRecord 之间的关联关系

公开的属性

隐藏继承的属性

属性类型描述定义于
$mapping_name string 目标数据映射到来源数据的哪一个键,同时 mapping_name 也是关联的名字 QDB_ActiveRecord_Association_Abstract
$source_key string 确定关联关系时,来源方使用哪一个键 QDB_ActiveRecord_Association_Abstract
$target_key string 确定关联关系时,目标方使用哪一个键 QDB_ActiveRecord_Association_Abstract
$source_key_2nd QDB_ActiveRecord_Association_Abstract
$target_key_2nd QDB_ActiveRecord_Association_Abstract
$mid_common_key QDB_ActiveRecord_Association_Abstract
$on_find string|int|array 指示是否读取目标数据 QDB_ActiveRecord_Association_Abstract
$on_find_where array|string 查询目标数据时要使用的查询条件 QDB_ActiveRecord_Association_Abstract
$on_find_order string 查询目标数据时的排序 QDB_ActiveRecord_Association_Abstract
$on_find_keys array|string 查询目标数据时要查询哪些属性 QDB_ActiveRecord_Association_Abstract
$on_delete string|boolean 指示在来源数据时,如何处理相关的目标数据 QDB_ActiveRecord_Association_Abstract
$on_delete_set_value mixed 如果 on_delete 为 set_value,则通过 on_delete_set_value 指定要填充的值 QDB_ActiveRecord_Association_Abstract
$on_save string 指示保存来源数据时,是否保存关联的目标数据 QDB_ActiveRecord_Association_Abstract
$mid_source_key string 查询多对多关联时,中间数据使用哪一个键关联到来源方 QDB_ActiveRecord_Association_Abstract
$mid_target_key string 查询多对多关联时,中间数据使用哪一个键关联到目标方 QDB_ActiveRecord_Association_Abstract
$mid_on_find_keys array|string 查询多对多关联时,是否也要把中间数据放到结果中 QDB_ActiveRecord_Association_Abstract
$mid_mapping_to string 查询多对多关联时,中间数据要指定到目标数据的哪一个键 QDB_ActiveRecord_Association_Abstract
$one_to_one boolean 指示关联两个数据时,是一对一关联还是一对多关联 QDB_ActiveRecord_Association_Abstract
$type int 关联的类型 QDB_ActiveRecord_Association_Abstract
$enabled boolean 当 enabled 为 false 时,表数据入口的任何操作都不会处理该关联 QDB_ActiveRecord_Association_Abstract
$source_meta QDB_ActiveRecord_Meta 关联中的来源对象 QDB_ActiveRecord_Association_Abstract
$target_meta QDB_ActiveRecord_Meta 关联到哪一个 ActiveRecord 类 QDB_ActiveRecord_Association_Abstract
$mid_meta QDB_ActiveRecord_Meta 封装中间表数据的 ActiveRecord 元信息对象 QDB_ActiveRecord_Association_Abstract
$mid_table QDB_Table 封装中间表的表数据入口对象 QDB_ActiveRecord_Association_Abstract

保护的属性

隐藏继承的属性

属性类型描述定义于
$_inited boolean 指示关联是否已经初始化 QDB_ActiveRecord_Association_Abstract
$_init_config array 初始化参数 QDB_ActiveRecord_Association_Abstract
$_init_config_keys array 用于初始化关联对象的参数 QDB_ActiveRecord_Association_Abstract

公共方法

隐藏继承的方法

方法描述定义于
create() 创建一个关联对象 QDB_ActiveRecord_Association_Abstract
registerCallbacks() 注册回调方法 QDB_ActiveRecord_Association_Abstract
disable() 禁用当前关联 QDB_ActiveRecord_Association_Abstract
enable() 启用当前关联 QDB_ActiveRecord_Association_Abstract
init() 初始化关联 QDB_ActiveRecord_Association_Abstract
onSourceSave() 源对象保存时调用 QDB_ActiveRecord_Association_Abstract
onSourceDestroy() 源对象销毁时调用 QDB_ActiveRecord_Association_Abstract

保护的方法

隐藏继承的方法

方法描述定义于
__construct() 构造函数 QDB_ActiveRecord_Association_Abstract

属性详细说明

$mapping_name 属性

目标数据映射到来源数据的哪一个键,同时 mapping_name 也是关联的名字

$source_key 属性

确定关联关系时,来源方使用哪一个键

$target_key 属性

确定关联关系时,目标方使用哪一个键

$source_key_2nd 属性
$target_key_2nd 属性
$mid_common_key 属性
$on_find 属性

指示是否读取目标数据

skip|false - 不读取 all|true - 读取所有关联数据 整数 - 仅读取指定个数的目标数据 数组 - 由 count 和 offset 组成的数组,指定读取目标数据的起始位置和个数

对于所有类型的关联,on_find 的默认值都是 all

$on_find_where 属性

查询目标数据时要使用的查询条件

$on_find_order 属性

查询目标数据时的排序

$on_find_keys 属性

查询目标数据时要查询哪些属性

$on_delete 属性

指示在来源数据时,如何处理相关的目标数据

cascade|true - 删除关联的目标数据 set_null - 将目标数据的 target_key 键设置为 NULL set_value - 将目标数据的 target_key 键设置为指定的值 skip|false - 不处理关联记录 reject - 拒绝对来源数据的删除

对于 has many 和 has one 关联,默认值则是 cascade 对于 belongs to 和 many to many 关联,on_delete 设置固定为 skip

$on_delete_set_value 属性

如果 on_delete 为 set_value,则通过 on_delete_set_value 指定要填充的值

$on_save 属性

指示保存来源数据时,是否保存关联的目标数据

save|true - 根据目标数据是否有 ID 或主键值来决定是创建新的目标数据还是更新已有的目标数据 create - 强制创建新的目标数据 update - 强制更新已有的目标数据 replace - 尝试替换已有的目标数据,如果不存在则新建 skip|false - 保存来源数据时,不保存目标数据 only_create - 仅仅保存需要新建的目标数据 only_update - 仅仅保存需要更新的目标数据

对于 many to many 关联,on_save 的默认值是 skip 对于 has many 关联,on_save 的默认值是 save 对于 has on 关联,on_save 的默认值是 replace 对于 belongs to 关联,on_save 设置固定为 skip

$mid_source_key 属性

查询多对多关联时,中间数据使用哪一个键关联到来源方

$mid_target_key 属性

查询多对多关联时,中间数据使用哪一个键关联到目标方

$mid_on_find_keys 属性

查询多对多关联时,是否也要把中间数据放到结果中

如果 mid_on_find_keys 为 null,则不查询。如果为特定属性名, 则会根据 mid_mapping_to 将中间数据指定为目标数据的一个键。

$mid_mapping_to 属性

查询多对多关联时,中间数据要指定到目标数据的哪一个键

$one_to_one 属性

指示关联两个数据时,是一对一关联还是一对多关联

$type 属性

关联的类型

$enabled 属性

当 enabled 为 false 时,表数据入口的任何操作都不会处理该关联

enabled 的优先级高于 linkRead、linkCreate、linkUpdate 和 linkRemove。

$source_meta 属性

关联中的来源对象

$target_meta 属性

关联到哪一个 ActiveRecord 类

$mid_meta 属性

封装中间表数据的 ActiveRecord 元信息对象

$mid_table 属性

封装中间表的表数据入口对象

$_inited 属性

指示关联是否已经初始化

$_init_config 属性

初始化参数

$_init_config_keys 属性

用于初始化关联对象的参数

方法详细说明

__construct() 方法

protected QDB_ActiveRecord_Association_Abstract __construct($type, $config, $source_meta)

$type int
$config array
$source_meta QDB_ActiveRecord_Meta
{return} QDB_ActiveRecord_Association_Abstract

构造函数


create() 方法

public static QDB_ActiveRecord_Association_Abstract create($type, $config, $source_meta)

$type int
$config array
$source_meta QDB_ActiveRecord_Meta
{return} QDB_ActiveRecord_Association_Abstract

创建一个关联对象


registerCallbacks() 方法

public void registerCallbacks($assoc_info)

$assoc_info array
{return}

注册回调方法


disable() 方法

public QDB_ActiveRecord_Association_Abstract disable()

禁用当前关联


enable() 方法

public QDB_ActiveRecord_Association_Abstract enable()

启用当前关联


init() 方法

public QDB_ActiveRecord_Association_Abstract init()

初始化关联


onSourceSave() 方法

abstract public QDB_ActiveRecord_Association_Abstract onSourceSave($source, $recursion)

$source QDB_ActiveRecord_Abstract
$recursion int
{return} QDB_ActiveRecord_Association_Abstract

源对象保存时调用


onSourceDestroy() 方法

abstract public QDB_ActiveRecord_Association_Abstract onSourceDestroy($source)

$source QDB_ActiveRecord_Abstract
{return} QDB_ActiveRecord_Association_Abstract

源对象销毁时调用