当前位置: 首页 > 工具软件 > Bamboo > 使用案例 >

bamboo model API

邵飞宇
2023-12-01
这里是Bamboo的最新版本Model的API文档。

本文档中的所有类方法都可以供所有继承自Model的类使用,所有实例方法可供所有这些类以及类的实例使用。

类方法

通过name获取id
model_obj:getIdByName (name)	通过name获取对应实例的id,并返回id(仍然为字符串)

name: 实例的名称


通过id获取name
model_obj:getNameById (id)		通过id获取对应实例的name,返回name字符串

id: 实例的id


通过id获取实例对象
model_obj:getById (id)			通过id获取实例对象,并返回此对象

id: 实例的id


通过name获取实例对象
model_obj:getByName (name)		通过name获取实例对象,并返回此对象

name: 实例的name


获取所有id
model_obj:allIds (is_rev)		获取此model旗下的所有id,并返回此id列表

is_rev: 是否反向标志。此值只有当为字符串'rev'时,表示反向生成结果列表;反之省略此参数或者取其它任何值都表示正向生成结果列表


返回此模型的所有实例id组成的一个列表的一个切片
model_obj:sliceIds (start, stop, is_rev)		获取此model旗下的所有id的一个切片,并返回此id列表

start: 可选,正数的话从1开始,可以为负的索引
stop: 可选,不能小于start,可以为负的索引,最后一个为-1
is_rev: 是否反向标志。此值只有当为字符串'rev'时,表示反向生成结果列表;反之省略此参数或者取其它任何值都表示正向生成结果列表


取出此模型的所有实例对象
model_obj:all (is_rev)		获取此model旗下的所有实例对象,并返回此对象列表

is_rev: 是否反向标志。此值只有当为字符串'rev'时,表示反向生成结果列表;反之,省略此参数或者取其它任何值都表示正向生成结果列表


取出此模型的所有实例对象的一个切片
model_obj:slice (start, stop, is_rev)	获取此model旗下的所有实例对象的一个切片,并返回此对象列表

start: 可选,正数的话从1开始,可以为负的索引
stop: 可选,不能小于start,可以为负的索引,最后一个为-1
is_rev: 是否反向标志。此值只有当为字符串'rev'时,表示反向生成结果列表;反之,省略此参数或者取其它任何值都表示正向生成结果列表


取出此模型的所有有效keys
model_obj:allKeys ()		获取此model旗下的所有keys,并返回此key列表


测量当前数据库中此类的真实实例个数
model_obj:numbers ()		获取此model旗下的实例的总数目,并返回此整数


根据query参数取出此模型的一个实例。query的讲解参见专门的章节。
model_obj:get (query, is_rev)		返回此对象实例

query: query参数表
is_rev: 是否反向查找


根据query参数取出此模型的一批实例。query的讲解参见专门的章节。
model_obj:filter (query, is_rev, starti, length, dir)	并返回此对象实例

query: query参数表
is_rev: 可选。是否反向生成中间id列表,会影响过滤结果方向
starti: 可选。查找的范围中开始时的list索引
length: 可选。需要查找的长度
dir: 可选。取值为1(正向)或-1(反向)。在is_rev的基础上,指定基于开始点朝前或朝后一段距离的方向


清除此模型的所有实例对象
model_obj:clearAll ()	无返回参数

注意:此操作非常危险,除非你确实知道自己在干什么,否则请不要使用。


向数据库中存入一些自定义的键值对
model_obj:setCustom (key, val, st)	向数据库中存入自定义键值对,目前已经支持字符串和list的存入。

key: 自定义键
val: 自定义值
st: 存储形式。如果没有st或st不为 “LIST”,就表明存储string,(这时val必须为string);
如果st为“LIST”,就表明存储list,这时,val必须为list。


取出数据库中的自定义键值对
model_obj:getCustom (key, st)	目前来讲,返回的是字符串或list

key: 自定义键
st: 存储形式。st一般可以不写,只不过当存储的是一个list时,不写st会产生一个警告,不会报错。


删除数据库中的自定义键值对
model_obj:delCustom (key)	删除成功,返回true;反之,返回false

key: 自定义键


基于数据库的定义对提交的数据进行验证
model_obj:validate (params)	传进来的参数一条一条验证后,完全符合要求的,返回true;只要有一条验证不满足,就返回false,以及一条错误信息

params: 一个key-value的table,一般为从客户端传上来的参数解析(用Form:parse()等)后的结果;


======================================================================

实例方法

保存本实例对象(的非外键部分)到数据库
instance_obj:save ()	无返回值

提示:这是将数据存入数据库中的最常用的方法


更新本实例对象的某一个字段(非外键)到数据库(避免全部保存拖低效率)
instance_obj:update (field, new_value)	无返回值

field: 要更新的域
new_value: 此域的新值

注意:此接口无法对外键域进行操作


获取模型计数器的值
instance_obj:getCounter ()	返回当前模型计数器的值,整数

注:此函数除了实例可以调用外,类对象也可以调用


删除本实例对象或本实例对象列表
instance_obj:del ()		删除此对象

提示:
可以看到,我们要删除一个实例对象,必须先取出它来,再执行删除。这样设计的目的是更加保证安全性、有效性


添加一个外链模型的实例new_obj的id到本对象的域field中来
instance_obj:addForeign(field, new_obj)		返回self

field: 记录外键的域。要求此实例的此域必须要有外键属性(定时模型时必须指定)
new_obj: 待添加的对象

提示:
在外键域中记录的是外键对象的id,但要求传入数据为一个对象,主要也是为了使操作更加安全。


获取本对象的外键域的外键实例
instance_obj:getForeign (field, start, stop, is_rev)		返回外键对象或外键对象列表,没有就返回nil

field: 外键域。要求,此域在定义的时候必须声明外键属性
start: 可选。起始位置。用于限制返回结果的切片
stop: 可选。结束位置。用于限制返回结果的切片
is_rev: 可选。如果有的话,如果等于”rev”,就反向生成结果list;否则,正向生成


释放本对象的一个域中所存储的外链模型的实例列表的一个片断
instance_obj:delForeign (field, fr_obj)		返回self

field: 外键域
fr_obj: 要被删除的外键对象


得到本对象外键域当前外键的数目
instance_obj:numForeign (field)		返回当前外键域中的外链对象的数目,整数

field: 外键域


根据域名称获取相应的字段的信息
instance_obj:fieldInfo (field)		返回指定域在模型定义时的信息

field: 域名称,字符串
 类似资料:

相关阅读

相关文章

相关问答