标明表的对外一对多($has_many)一对一关系($has_one)
var $has_many = array( 'sdfkey'=>'表名(@app名):操作:字段关联', .... );
名称 | 说明 | 默认值 | 必须 |
sdfkey | 对应关系在sdf树中的挂载点名 | 无 | √ |
表名 | 对应的表名 | 无 | √ |
操作 | save的操作方式( append:只对导入数据做save保存 不对数据库原有数据做操作/replace:先删除数据库原有所有相关数据 再对导入数据做save/contrast:和数据数原有数据做比对 导入数据原有数据存在库中做update 不存在insert 数据库存在未导入数据delete) | append | |
字段关联 | 本表字段^关联表字段 2表之间 | 本表主键 与 对应表dbschema中"type=>table:本表名"字段 不能关联用此方法标识对应关系 |
function save(&$data,$mustUpdate = null)
名称 | 说明 | 结构 | 引用 | 必要 |
$data | 需保存数据的 | sdf | √ | √ |
$mustUpdate | 必须保存的结构说明 | sdf |
将单条sdf数据通过has_many,has_one配置递归save入数据库,联合主键表不支持递归save,返回bool,主键返回$data
function set_default( $parentId, $defaultDataId )
名称 | 说明 |
$parentId | 父表id |
$defaultDataId | 本表默认值id |
设定默认值方法,当默认值id由父表记录时 需要重载 返回bool
function dump($filter,$field = '*',$subSdf = null)
名称 | 说明 | 类型 | 默认 | 必要 |
$filter | 搜索条件 | String(表示主键)或array | √ | |
$field | 主表需要输出字段 | String | * | |
$subSdf | 附加输出的子节点sdf | String或array | null |
array( 'key'=>array('field' subsdf), ':Foreign key'=>array( 'field',subsdf ), )
名称 | 说明 |
key | has_many/has_one定义键值 支持xpath语法 |
field | 子表所需输出字段 |
Foreign key | dbschema定义的外键表名 :前有string可以自定义外联表数据在sdf树中的键名 |
subsdf | 子表subsdf |
标准sdf结构的subsdf定义在model中例:mdl.goods.phpvar $subSdf = array('default' => subsdf ......);未定义为has_many,has_one的集合 不dump外键
使用方法:$goods = $oGoods->dump($goods_id,'*','default');可以自定义别的写法 basic,simple等等等
没最终想好怎么弄暂时需要重载的参考mdl.products.php
function _dump_depends_goods_lv_price(&$data,&$redata,$filter,$subSdfKey,$subSdfVal)
返回单条sdf结构数据 一对多数据输出list 会以主键id做key 联合主键以父表主键外的主键做key
function batch_dump($filter,$field = '*',$subSdf = null,$start=0,$limit=20,$orderType = null ) 参数:$filter,$field,$subSdf 同dump ,$start=0,$limit=20,$orderType同getList 返回多个sdf