包 | 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 |
目标数据映射到来源数据的哪一个键,同时 mapping_name 也是关联的名字
确定关联关系时,来源方使用哪一个键
确定关联关系时,目标方使用哪一个键
指示是否读取目标数据
skip|false - 不读取 all|true - 读取所有关联数据 整数 - 仅读取指定个数的目标数据 数组 - 由 count 和 offset 组成的数组,指定读取目标数据的起始位置和个数
对于所有类型的关联,on_find 的默认值都是 all
查询目标数据时要使用的查询条件
查询目标数据时的排序
查询目标数据时要查询哪些属性
指示在来源数据时,如何处理相关的目标数据
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 指定要填充的值
指示保存来源数据时,是否保存关联的目标数据
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_on_find_keys 为 null,则不查询。如果为特定属性名, 则会根据 mid_mapping_to 将中间数据指定为目标数据的一个键。
查询多对多关联时,中间数据要指定到目标数据的哪一个键
指示关联两个数据时,是一对一关联还是一对多关联
关联的类型
当 enabled 为 false 时,表数据入口的任何操作都不会处理该关联
enabled 的优先级高于 linkRead、linkCreate、linkUpdate 和 linkRemove。
关联中的来源对象
关联到哪一个 ActiveRecord 类
封装中间表数据的 ActiveRecord 元信息对象
封装中间表的表数据入口对象
指示关联是否已经初始化
初始化参数
用于初始化关联对象的参数
protected QDB_ActiveRecord_Association_Abstract __construct($type, $config, $source_meta)
$type | int | |
$config | array | |
$source_meta | QDB_ActiveRecord_Meta | |
{return} | QDB_ActiveRecord_Association_Abstract |
构造函数
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 |
创建一个关联对象
public void registerCallbacks($assoc_info)
$assoc_info | array | |
{return} |
注册回调方法
public QDB_ActiveRecord_Association_Abstract disable()
禁用当前关联
public QDB_ActiveRecord_Association_Abstract enable()
启用当前关联
public QDB_ActiveRecord_Association_Abstract init()
初始化关联
abstract public QDB_ActiveRecord_Association_Abstract onSourceSave($source, $recursion)
$source | QDB_ActiveRecord_Abstract | |
$recursion | int | |
{return} | QDB_ActiveRecord_Association_Abstract |
源对象保存时调用
abstract public QDB_ActiveRecord_Association_Abstract onSourceDestroy($source)
$source | QDB_ActiveRecord_Abstract | |
{return} | QDB_ActiveRecord_Association_Abstract |
源对象销毁时调用