`
daogangtang
  • 浏览: 62672 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

bamboo model API

Lua 
阅读更多
这里是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:	域名称,字符串

分享到:
评论

相关推荐

    ASP.NET-[小偷采集]我秀秀淘宝客api源码v2.1.zip

    1. **ASP.NET MVC框架**:ASP.NET MVC(Model-View-Controller)是一个用于构建可测试和可维护的Web应用程序的设计模式。在这个项目中,MVC模式用于分离业务逻辑、视图呈现和用户交互,提高了代码组织和可维护性。 ...

    ASP.NET-[企业政府]某社区居委会网站源码.zip

    6. **WebAPI或SignalR**:如果网站包含实时通信或提供RESTful API,ASP.NET的WebAPI或SignalR技术会发挥重要作用。WebAPI用于构建HTTP服务,而SignalR则支持实时双向通信,如聊天室或通知系统。 7. **部署和服务器...

    基于ASP.NET技术的WEB网站开发与设计.zip

    ASP.NET不仅支持传统的Web Forms模式,还引入了MVC(Model-View-Controller)和Web API模式,以满足不同类型的Web开发需求。 2. **Web Forms** Web Forms是ASP.NET早期的主要开发模型,它通过控件模型提供了一种...

    java+mysql crm客户关系管理系统.zip

    在CRM系统中,Model代表业务对象,View负责展示数据,Controller处理用户请求并协调Model和View。 6. **RESTful API设计**:为了实现前后端分离或与其他系统集成,CRM系统通常会提供RESTful API。这些API遵循HTTP...

    安卓开发-仿微信基于位置的聊天.zip.zip

    - 使用MVP(Model-View-Presenter)或MVVM(Model-View-ViewModel)设计模式来组织代码,提高可维护性和测试性。 - 实现模块化设计,将不同功能如登录、注册、聊天、位置服务等封装成独立模块。 2. **用户界面与...

    ASP.NET-[搜索链接]文献检索系统v1.0.zip

    此外,ASP.NET还支持Model-View-Controller (MVC) 设计模式,这种模式有助于代码组织和解耦,提高可维护性和可测试性。在文献检索系统中,Model可能包含数据访问层,负责与数据库的交互;View是用户界面,显示搜索...

    ASP.NET-[其他类别]asp.net版ucenter接口程序源码.zip

    Web Forms是一种基于控件的模型,而MVC(Model-View-Controller)则更注重分离关注点。根据源码的性质,可能涉及到其中一种或两种框架的使用。 2. **Ucenter API**:Ucenter API是一套接口,包括注册、登录、修改...

    ASP.NET-[博客空间]HubroBlogv1.0.zip

    6. **WebAPI或SignalR**:考虑到博客系统可能包含API接口供其他应用使用,或者提供实时通信(如评论通知),ASP.NET WebAPI或SignalR可能会被用来构建这些功能。WebAPI用于构建RESTful服务,而SignalR则提供了实时...

    ASP.NET-[新闻文章]荒野新闻系统Sql版项目源码.zip

    6. **WebAPI或ASP.NET Core API**:如果项目涉及API开发,可能会使用ASP.NET WebAPI或ASP.NET Core API来提供RESTful服务,使得移动设备或其他客户端能与新闻系统进行数据交互。 7. **AJAX技术**:为了实现页面的无...

    ASP.NET-[电子商务]新普网络商城XpShop.netv5.1英文版.1.zip

    再者,ASP.NET MVC(Model-View-Controller)框架是一个用于构建可测试、结构清晰的Web应用程序的模式。XpShop.net可能采用了MVC架构,分离了业务逻辑、数据模型和用户界面,使得代码更易于维护和扩展。 此外,安全...

    安卓开发-Android平台使用PocketSphinx做离线语音识别,小范围语音99%识别率.zip.zip

    在Android平台上进行语音识别,开发者通常会选择使用Google的云服务,如Google Speech-to-Text API。然而,在没有网络连接或需要高效能、低延迟的离线场景下,使用开源工具PocketSphinx则是一个理想的选择。本文将...

    ASP.NET-[博客空间]明日多用户Blog系统.zip

    如果系统包含API接口供移动应用或其他服务调用,那么可能使用了ASP.NET Web API。这是一个构建HTTP服务的框架,可方便地为浏览器和移动设备提供数据。 6. ** razor 视图引擎** Razor视图引擎是ASP.NET MVC中常用的...

    安卓开发-Android应用源码我要打车安卓手机打车项目.zip

    使用MVC(Model-View-Controller)或MVVM(Model-View-ViewModel)架构模式,分离业务逻辑和视图显示,提高代码可读性和可维护性。 四、性能优化 1. 异步处理:避免阻塞UI线程,使用AsyncTask、IntentService或...

    ASP.NET-[电子商务]贺喜多途径支付接口v2.3(Net).zip

    1. **MVC(Model-View-Controller)架构**:ASP.NET MVC是一个轻量级的框架,它支持分离关注点,使得代码更加可读和可维护。 2. **路由**:ASP.NET的路由系统允许自定义URL模式,提供友好的URL结构,便于搜索引擎...

    ASP.NET-[新闻文章]hongxua新闻发布系统v0.1.1.zip

    ASP.NET提供了多种编程模型,包括Web Forms、MVC(Model-View-Controller)和Web API。Web Forms允许开发者使用事件驱动的编程模型,类似于桌面应用程序,而MVC模式则更强调分离关注点,提供更好的测试性和可维护性...

    ASP.NET-[博客空间]锡远博客系统.zip

    为了提供API接口供其他应用或移动设备访问,ASP.NET还支持Web API的开发。这使得博客系统可以提供JSON或XML格式的数据,遵循RESTful架构原则,实现数据的异步交换。 9. **用户体验与AJAX** ASP.NET提供了AJAX支持...

    ASP.NET-[其他类别]文件在线管理系统v0.3.3.zip

    1. **MVC架构**:ASP.NET MVC(Model-View-Controller)是一种广泛使用的软件设计模式,它将应用程序分为模型、视图和控制器三个部分,以实现更好的代码组织和分离关注点。 2. **身份验证与授权**:为了确保只有...

    共创在线考试系统(JSP+SERVLET).zip.zip

    3. **MVC设计模式**:在共创在线考试系统中,很可能采用了Model-View-Controller(模型-视图-控制器)架构,其中Model代表业务逻辑,View负责展示,Controller处理用户请求并协调Model和View。 4. **数据库操作**:...

    ASP.NET-[新闻文章]天下新闻网.zip

    ASP.NET MVC(Model-View-Controller)是一种设计模式,用于将业务逻辑、数据和用户界面分离。模型负责管理应用程序的数据和业务逻辑,视图负责显示用户界面,控制器则处理用户的输入并协调模型和视图。在"天下新闻...

    ASP.NET-[学校班级]谷秋精品课程软件课程版v2.7.zip

    ASP.NET提供了多种开发模式,包括Web Forms、MVC(Model-View-Controller)和Web API,每种模式都有其特定的应用场景和优势。 Web Forms是ASP.NET早期的开发模型,它引入了控件的概念,允许开发者像操作Windows应用...

Global site tag (gtag.js) - Google Analytics