怎么在YII2框架中使用ActiveDataProvider和GridView
创始人
2024-11-30 01:20:25
0次

具体如下:

YII2中ActiveDataProvider可以使用yii\db\Query或yii\db\ActiveQuery的对象,方便我们构造复杂的查询筛选语句。

配合强大的GridView,快速的显示我们想要的数据。

通过上面的两个工具,我们快速的显示用户表信息。用户表结构如下:

怎么在YII2框架中使用ActiveDataProvider和GridView

我们创建一个用户模型MyUser.php,代码如下:

 $query,
      //设置分页参数
      'pagination' => [
        //分页大小
        'pageSize' => 3,
        //设置地址栏当前页数参数名
        'pageParam' => 'p',
        //设置地址栏分页大小参数名
        'pageSizeParam' => 'pageSize',
      ],
      //设置排序
      'sort' => [
        //默认排序方式
        'defaultOrder' => [
          'id' => SORT_DESC,
        ],
        //参与排序的字段
        'attributes' => [
          'id', 'name', 'sex', 'age'
        ],
      ],
    ]);

    //如果验证没通过,直接返回
    if (!($this->load($params) && $this->validate())) {
      return $provider;
    }

    //增加过滤条件
    $query->andFilterWhere(['id' => $this->id])
      ->andFilterWhere(['like', 'name', $this->name])
      ->andFilterWhere(['sex' => $this->sex])
      ->andFilterWhere(['age' => $this->age]);

    return $provider;
  }
}

然后,创建控制器TestController.php,代码如下:

search(YII::$app->request->get());

    return $this->render('test', [
      'model' => $user,
      'provider' => $provider,
    ]);
  }
}

视图页面test.php,代码如下:




  
    
      显示我选中的
    
  
               'myUserGridView',         //设置数据提供器         'dataProvider' => $provider,         //设置筛选模型         'filterModel' => $model,         'columns' => [           //复选框列           ['class' => 'yii\grid\CheckboxColumn'],           //显示序号列           ['class' => 'yii\grid\SerialColumn'],           [             //设置字段显示标题             'label' => 'ID',             //字段名             'attribute' => 'id',             //格式化             'format' => 'raw',             //设置单元格样式             'headerOptions' => [               'style' => 'width:120px;',             ],           ],           [             'label' => '姓名',             'attribute' => 'name',             'format' => 'raw',           ],           [             'label' => '头像',             'attribute' => 'head_img',             'format' => 'raw',             //通过该返回值,我们可以任意控制列数据的显示             //$data指向的是当前行的数据结果集             'value' => function ($data) {               return 'head_img, '/') . '" width="60px">';             },           ],           [             'label' => '性别',             //设置筛选选项             'filter' => [0 => '男', 1 => '女'],             'attribute' => 'sex',             'format' => 'raw',             'value' => function ($data) {               return ($data->sex == 0) ? '男' : '女';             }           ],           [             'label' => '年龄',             'attribute' => 'age',             'format' => 'raw',           ],           [             'header' => '操作',             'class' => 'yii\grid\ActionColumn',             //设置显示模板             'template' => '{upd} {del}',             //下面的按钮设置,与上面的模板设置相关联             'buttons' => [               'upd' => function ($url, $model, $key) {                 return ' $key]) . '" rel="external nofollow" class="btn btn-warning">修改';               },               'del' => function ($url, $model, $key) {                 return ' $key]) . '" rel="external nofollow" class="btn btn-danger">删除';               },             ],           ],         ],       ]); ?>     
  
  $("#showSelBtn").on("click", function () {     var keys = $("#myUserGridView").yiiGridView('getSelectedRows');     alert(keys);   });

显示结果如下:

怎么在YII2框架中使用ActiveDataProvider和GridView

怎么在YII2框架中使用ActiveDataProvider和GridView

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...