tp基础控制器中对页面简单筛选要求做处理

发表时间:2020-10-21 04:15:22
摘要信息

tp基础控制器中对页面简单筛选要求做处理


/**
* 处理简单的筛选
*
*
* @return array
*/
public function query(){
$param = $this->request->post();
$query = [];
foreach ($param as $key=>$val){
if ($key != 'page' && $key !='limit' && $key != 'count' && !empty($val) && $val != '不选择'){
$query[$key] = $val;
}
}
return $query;
}

继承基础控制器

<?php
declare (strict_types = 1);

namespace app\admin\controller\v1;

use app\admin\model\Keyset;
use app\AdminController;

class Card extends AdminController
{
public function index()
{
return '您好!这是一个[card]示例应用';
}

public function getCardList(){
if (!$this->request->isPost()){
$this->error('请求错误');
}
$admin = $this->request->admin;
$param = $this->request->post();
$count = Keyset::where($this->query())->count();
$list = Keyset::where($this->query())->page($param['page'])->limit(15)->select();
$this->success('获取成功',$list,$count);
}
}

筛选页面如下


<FormItem label="选择软件">
<Select v-model="select.soft_id" style="width: 150px" @on-change="changeSoft">
<Option v-for="item in soft" :value="item.id" :key="item.id">{{ item.softname }}</Option>
</Select>
</FormItem>

很简单 传入了soft_id 以及它的值

后台就对这个进行筛选(关键的筛选代码)

$list = Keyset::where($this->query())->page($param['page'])->limit(15)->select();

结果如下:



也可以自己构思下复杂的筛选条件,然后在基础控制器中把筛选合成tp查询条件数组,然后传入where()中,完成筛选。

40% Complete (success)