作用

使用通用数据列表视图的时候,可以通过setListSearch设置数据的搜索条件,实现列表页数据搜索功能。例如下面的在消息管理列表页,通过setListSearch(array( 'msgtype' => '消息类型', 'content' => '消息内容' )设置通过消息类型和消息内容进行消息的搜索。msgtype和content均为mp_message数据表里的字段。

示例

setListSearch - 图1

视图类实现

  1. /**
  2. * 消息列表
  3. * @author 艾逗笔<765532665@qq.com>
  4. */
  5. public function lists() {
  6. $custom = array(
  7. 'options' => array(
  8. 'save_to_material' => array(
  9. 'title' => '保存为素材',
  10. 'url' => U('save_to_material', array('msgid'=>'{msgid}')),
  11. 'class' => 'btn btn-sm btn-primary icon-signup'
  12. ),
  13. 'reply_message' => array(
  14. 'title' => '回复消息',
  15. 'url' => U('reply_message', array('msgid'=>'{msgid}')),
  16. 'class' => 'btn btn-sm btn-info icon-topic'
  17. )
  18. )
  19. );
  20. $this->addCrumb('公众号管理', U('Mp/Index/index'), '')
  21. ->addCrumb('消息管理', U('Mp/Message/lists'), '')
  22. ->addCrumb('消息列表', '', 'active')
  23. ->addNav('消息列表', '', 'active')
  24. ->setModel('mp_message')
  25. ->setListMap(array('mpid'=>get_mpid()))
  26. ->setListOrder('create_time desc')
  27. ->setListSearch(array(
  28. 'msgtype' => '消息类型',
  29. 'content' => '消息内容'
  30. ))
  31. ->addListItem('msgtype', '消息类型', 'enum', array('options'=>array('text'=>'文本消息','image'=>'图片消息','voice'=>'语音消息','shortvideo'=>'短视频消息','location'=>'地理位置消息','link'=>'链接消息')))
  32. ->addListItem('msgid', '消息内容', 'callback', array('callback_name'=>'get_message_content'))
  33. ->addListItem('create_time', '消息发送时间', 'function', array('function_name'=>'date','params'=>'Y-m-d H:i:s,###'))
  34. ->addListItem('openid', '粉丝头像', 'function', array('function_name'=>'get_fans_headimg'))
  35. ->addListItem('openid', '粉丝昵称', 'function', array('function_name'=>'get_fans_nickname'))
  36. ->addListItem('msgid', '操作', 'custom', $custom)
  37. ->common_lists();
  38. }

模型实现

  1. $model['list_search'] = array('msgtype' => '消息类型','content' => '消息内容' );

list_search对应的搜索条件数组键值对中的键必须是模型对象(数据表)中存在的字段,值为搜索框中显示的搜索条件名称。