corethink功能模块探索开发(十六)后台搜索功能

效果图:

corethink功能模块探索开发(十六)后台搜索功能_第1张图片

corethink功能模块探索开发(十六)后台搜索功能_第2张图片

代码很简单,就是添加搜索框,搜索字段,在初始化页面查询的时候添加查询条件。

1.添加搜索框

添加到删除按钮后边.

->setSearch('请输入设备名称/MAC/宿舍号', U('index'))
2.添加搜索字段

// 搜索
        $keyword = I('keyword', '', 'string');
        $condition = array('like','%'.$keyword.'%');
        $map['ap_name|ap_mac|dormitory_num'] = array($condition, $condition, $condition,'_multi'=>true);

添加在index方法开头,map的索引是可供搜索的字段,对应condition

3.添加查询条件

->where($map)

OK.PS:搜索的时候不能用回车键,使用按钮吧。

Application/Equip/Admin/ApAdmin.class.php

<?php
/**
 * Created by PhpStorm.
 * User: pangPython
 * Date: 16-3-30
 * Time: 下午10:22
 */

namespace Equip\Admin;


use Admin\Controller\AdminController;
use Common\Util\Think\Page;
class ApAdmin extends AdminController{
    public function index(){
        // 搜索
        $keyword = I('keyword', '', 'string');
        $condition = array('like','%'.$keyword.'%');
        $map['ap_name|ap_mac|dormitory_num'] = array($condition, $condition, $condition,'_multi'=>true);




        // 获取所有链接
        $p = !empty($_GET["p"]) ? $_GET["p"] : 1;
        $device_repire_object = D('equip_ap');//实例化数据对象
        $data_list = $device_repire_object
            ->page($p, C('ADMIN_PAGE_ROWS'))
            ->where($map)
            ->select();//分页查询数据列表
        $page = new Page(
            $device_repire_object->count(),
            C('ADMIN_PAGE_ROWS')
        );

        // 转换成树状列表
        $tree = new \Common\Util\Tree();
        $data_list = $tree->toFormatTree($data_list);
        //使用Builder快速建立列表页面
        $builder = new \Common\Builder\ListBuilder();
        $builder->setMetaTitle('无线AP') //设置页面标题
                ->addTopButton('addnew')
                ->addTopButton('delete',array('model'=>'equip_ap'))  // 添加删除按钮
                ->setSearch('请输入设备名称/MAC/宿舍号', U('index'))
                ->addTableColumn('id', 'ID')
                ->addTableColumn('ap_name', '设备名称')
                ->addTableColumn('ap_mac', 'MAC')
                ->addTableColumn('dormitory_num','宿舍号')
                ->addTableColumn('ap_status', '状态', 'status')
                ->addTableColumn('right_button', '操作', 'btn')
                ->setTableDataList($data_list)  // 数据列表
                ->setTableDataPage($page->show())  // 数据列表分页
                ->addRightButton('edit')           // 添加编辑按钮
                ->display();

    }

    public function add(){
        if(IS_POST){
            $ap_object = D('equip_ap');
            $data = $ap_object->create();

            if($data){
                $id = $ap_object->add($data);
                if ($id) {
                    $this->success('新增成功', U('index'));
                } else {
                    $this->error('新增失败');
                }
            }else{
                    $this->error($ap_object->getError());
            }

        }else{
            // 使用FormBuilder快速建立表单页面。
            $builder = new \Common\Builder\FormBuilder();
            $builder->setMetaTitle('新增AP')  // 设置页面标题
                    ->setPostUrl(U('add'))     // 设置表单提交地址
                    ->addFormItem('ap_name', 'text', 'AP名称')
                    ->addFormItem('ap_mac', 'text', 'mac', 'AP mac地址')
                    ->addFormItem('dormitory_num', 'text', '宿舍号', 'AP对应的宿舍号')
                    ->addFormItem('status', 'radio', '状态', 'AP状态',array('0'=>'在线','1'=>'离线'))
                    ->display();
        }
    }

    public function edit($id){

        if(IS_POST){
            //用于保存编辑后的数据
            $Equip_Repaire_object = D('equip_ap');
            $data = $Equip_Repaire_object->create();
            if ($data) {
                if ($Equip_Repaire_object->save($data)) {
                    $this->success('更新成功', U('index'));
                } else {
                    $this->error('更新失败');
                }
            } else {
                $this->error($Equip_Repaire_object->getError());
            }
        }else{

            //用于填充并显示点击编辑按钮后生成的列表

            $info = D('equip_ap')->find($id);
            // 使用FormBuilder快速建立表单页面。
            $builder = new \Common\Builder\FormBuilder();
            $builder->setMetaTitle('更改AP信息')  // 设置页面标题
            ->setPostUrl(U('edit'))    // 设置表单提交地址
            ->addFormItem('id', 'hidden', 'ID', 'ID')
                //设置文本类型的表单项目并用对应的数据库字段填充
                ->addFormItem('ap_name', 'text', 'AP', 'AP 名称')
                ->addFormItem('ap_mac', 'text', 'MAC', 'AP MAC 地址')
                ->addFormItem('ap_status', 'radio', '状态', 'AP状态',array('0'=>'离线','1'=>'在线'))
                ->addFormItem('dormitory_num', 'text', '宿舍号', 'AP对应的宿舍号')

                //设置数据关联
                ->setFormData($info)
                ->display();
        }
    }
}




你可能感兴趣的:(corethink,opencmf)