问答

yii 使用 ActiveDataFilter 传递参数进行搜索,不想用json,想搜

作者:admin 2021-07-28 我要评论

$filter = new ActiveDataFilter([ 'searchModel' = 'custom\appointment\models\Appointment' ]); $filter-filterAttributeName = 'q'; $filterCondition = nul...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
 $filter = new ActiveDataFilter([
            'searchModel' => 'custom\appointment\models\Appointment'
        ]);
        $filter->filterAttributeName = 'q';
        $filterCondition = null;

        if ($filter->load(\Yii::$app->request->get())) {
//            \X::result($filter);die;
            $filterCondition = $filter->build(false);

            if ($filterCondition === false) {
                return $filter;
            }
        }

这么设置的,路径直接传q[status]=SUCCESS,这样可以直接搜索到status为SUCCESS状态的,想加in查询或者or查询,不想用json参数,如何传递参数,qstatus = [EXPIRE,CANCEL],这样不可以,具体应该怎么传

###

1.如果使用params 传参数的,使用in查询的话,可以这么传参数

q[status][in][]=EXPIRE&q[status][in][]=CANCEL

会生成下面的sql条件

`status`?IN?('EXPIRE',?'CANCEL')

管理端使用

Yii::$app->request->get()

接收参数

2.如果传json的话,使用in查询的话,可以这么传参数

{
    "q": {
        "status": {"in": ["EXPIRE","CANCEL"]}
    }
}

会生成下面的sql条件

`status`?IN?('EXPIRE',?'CANCEL')

管理端使用

Yii::$app->request->getBodyParams()

接收参数

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • yii 使用 ActiveDataFilter 传递参数进

    yii 使用 ActiveDataFilter 传递参数进

  • 社交app上使用mongodb分页查询,实时数

    社交app上使用mongodb分页查询,实时数

  • idea启动springboot没有自动把yml配置

    idea启动springboot没有自动把yml配置

  • react-router 如何实现点击二级导航时

    react-router 如何实现点击二级导航时

腾讯云代理商
海外云服务器