以会员数据为例
desktop_controller-------------------finder
desktop_finder_builder_prototype---------------
work
desktop_finder_builder_view-----------------
main
desktop_finder_builder_view-------------------
createView 579 创建页面数据
desktop_finder_builder_prototype------------
getColumns 108 需要展示的列
(在default_in_list 定义为 true的列
)
(和其他表的数据
desktop_finder_builder_prototype------------
$this->
addon_columns
)
定义在 services.xml
<service id="desktop_finder.b2c_mdl_members">
<class>b2c_finder_members</class>
</service>
b2c_mdl_members----------------------------
getList
总结,如果需要从list中(主表)筛选审核通过的用户,则在
finder 第二个参数添加
$actions_base[
'base_filter'
] =
array
(
'login_type'
=>
'mobile'
,
'order_refer'
=>
'local'
,
'disabled'
=>
'false'
);
更多的筛选条件:
$filter = array('member_lv_id|bthan' => 3);
更详细的filter参数可通过dbeav/lib/filter.php查看下面的代码获悉:
$FilterArray= array('than'=>' > '.$var,
'lthan'=>' < '.$var,
'nequal'=>' = \''.$var.'\'',
'noequal'=>' <> \''.$var.'\'',
'tequal'=>' = \''.$var.'\'',
'sthan'=>' <= '.$var,
'bthan'=>' >= '.$var,
'has'=>' like \'%'.$var.'%\'',
'head'=>' like \''.$var.'%\'',
'foot'=>' like \'%'.$var.'\'',
'nohas'=>' not like \'%'.$var.'%\'',
'between'=>' {field}>='.$var[0].' and '.' {field}<='.$var[1],
'in' =>" in ('".implode("','",(array)$var)."') ",
'notin' =>" not in ('".implode("','",(array)$var)."') ",
);
'lthan'=>' < '.$var,
'nequal'=>' = \''.$var.'\'',
'noequal'=>' <> \''.$var.'\'',
'tequal'=>' = \''.$var.'\'',
'sthan'=>' <= '.$var,
'bthan'=>' >= '.$var,
'has'=>' like \'%'.$var.'%\'',
'head'=>' like \''.$var.'%\'',
'foot'=>' like \'%'.$var.'\'',
'nohas'=>' not like \'%'.$var.'%\'',
'between'=>' {field}>='.$var[0].' and '.' {field}<='.$var[1],
'in' =>" in ('".implode("','",(array)$var)."') ",
'notin' =>" not in ('".implode("','",(array)$var)."') ",
);
如果碰上条件带有或逻辑的时候,上面的方法都不能直接使用,这个时候需要用到filter_sql。将所需要执行的sql语句where部分直接录入在filter_sql中:
//select * from members where member_id = 1 or name = 'tiandi';
$members->getlist('*',array('filter_sql' => "`member_id` = 1 or `name` = 'tiandi'"));
$members->getlist('*',array('filter_sql' => "`member_id` = 1 or `name` = 'tiandi'"));
然后如果需要根据其他数据表的条件进行筛选,就重写
b2c_mdl_members中的
getList方法,根据参数删除掉不需要的表记录;