finder的用法及原理

用法:

只要是继承了descktop_controller的类都可以使用$this->finder()的方式来查询数据列表。

如果需要修改某一列的值,可以通过注册service的方式来修改此列:首先在service中注册desktop_finder_column_modifier.this_object_name (this_object_name是指对应的数据结构的model对象,如:b2c_mdl_orders ) , 有detail_ 和 column_ 两个前缀的方法,故名思忆,分别是查看详情和修改字段值时调用的方法。

原理:

在descktop_controller的finder方法里会根据action的类型调用相应的类(desktop_finder_builder_.action)的方法(work)去处理查询请求,(支持的action有to_export、to_import、packet、column、detail、tag、view等,默认为view,目前只接触过view、to_export、to_import)

以view为例,desktop_finder_builder_view 是直接继承的desktop_finder_builder_prototype的work方法,work方法主要就是组织自定义的一些column_、detail_方法及额外添加的对column和detail的修改的服务,最终调用desktop_finder_builder_view 的main方法来筛选查询出想要的数据(在这里会根据$_POST中的数据进行筛选),包括选项卡,导航操作按钮都在处此控制(有空了再详细研究,下次知道在这里找就OK),最终组织成页面返回客户端

拓展举例:

如需根据该数据表中不存在的字段过滤的话,首先通过重写dbeav_model的searchOptions方法添加搜索项(如果是存在该字段的话直接在dbschema中添加searchtype参数就OK了),然后在调用finder之前,需要判断自己定义的这个字段,当选择了此字段进行筛选时,需通过关联查询找到相关字段进行筛选,如:查询到和该表相关的ID等进行过滤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值