本文实例讲述了yii2框架中activedataprovider与gridview的配合使用操作。分享给大家供大家参考,具体如下:
yii2中activedataprovider可以使用yii\db\query或yii\db\activequery的对象,方便我们构造复杂的查询筛选语句。
配合强大的gridview,快速的显示我们想要的数据。
通过上面的两个工具,我们快速的显示用户表信息。用户表结构如下:
我们创建一个用户模型myur.php,代码如下:
<?phpnamespace app\models;u yii\db\activerecord;u yii\data\activedataprovider;class myur extends activerecord{ //返回要操作的表名 public static function tablename() { return '{{%ur}}'; } //设置规则 //注意,如果没有给字段设置规则,gridview的筛选项是不会出现的 public function rules() { return [ [['id', 'name', 'x', 'age'], 'trim'], [['id', 'x', 'age'], 'integer'], ['name', 'string'], ]; } //查询 public function arch($params) { //首先我们先获取一个activequery $query = lf::find(); //然后创建一个activedataprovider对象 $provider = new activedataprovider([ //为activedataprovider对象提供一个查询对象 'query' => $query, //设置分页参数 'pagination' => [ //分页大小 'pagesize' => 3, //设置地址栏当前页数参数名 'pageparam' => 'p', //设置地址栏分页大小参数名 'pagesizeparam' => 'pagesize', ], //设置排序 'sort' => [ //默认排序方式 'defaultorder' => [ 'id' => sort_desc, ], //参与排序的字段 'attributes' => [ 'id', 'name', 'x', 'age' ], ], ]); //如果验证没通过,直接返回 if (!($this->load($params) && $this->validate())) { return $provider; } //增加过滤条件 $query->andfilterwhere(['id' => $this->id]) ->andfilterwhere(安全生产培训内容['like', 'name', $this->name]) ->andfilterwhere(['x' => $this->x]) ->andfilterwhere(['age' => $this->age]); return $provider; }}
然后,创建控制器testcontroller.php,代码如如何制作光盘下:
<?phpnamespace app\controllers;u yii;u yii\web\controller;u app\models\myur;class testcontroller extends controller{ public function actiontest() { $ur = new myur(); //调用模型arch方法,把get参数传进去 $provider = $ur->arch(yii::$app->request->get()); return $this->render('test', [ 'model' => $ur, 'provider' => $provider, ]); }}
视图页面test.php,代码如下:
<?phpu yii\helpers\url;u yii\helpers\html;u yii\grid\gridview;?><div id="page-wrapper"> <div class="row"> <div class="col-lg-12"> <button class="btn btn-primary" i注册公司过程d="showlbtn">显示我选中的</button> </div> </div> <div class="row"> <div class="col-lg-12"> <?php echo gridview::widget([ //设置gridview的id 'id' => 'myurgridview', //设置数据提供器 'dataprovider' => $provider, //设置筛选模型 'filtermodel' => $model, 'columns' => [ //复选框列 ['class' => 'yii\grid\checkboxcolumn'], //显示序号列 ['class' => 'yii\grid\rialcolumn'], [ //设置字段显示标题 'label' => 'id', //字段名 'a说明文的方法ttribute' => 'id', //格式化 'format' => 'raw', //设置单元格样式 'headeroptions' => [ 'style' => 'width:120px;', ], ], [ 'label' => '姓名', 'attribute' => 'name', 'format' => 'raw', ], [ 'label' => '头像', 'attribute' => 'head_img', 'format' => 'raw', //通过该返回值,我们可以任意控制列数据的显示 //$data指向的是当前行的数据结果集 'value' => function ($data) { return '<img src="' . '/' . ltrim($data->head_img, '/') . '" width="60px">'; }, ], [ 'label' => '性别', //设置筛选选项 'filter' => [0 => '男', 1 => '女'], 'attribute' => 'x', 'format' => 'raw', 'value' => function ($data) { return ($data->x == 0) ? '男' : '女'; } ], [ 'label' => '年龄', 'attribute' => 'age', 'format' => 'raw', ], [ 'header' => '操作', 'class' => 'yii\grid\actioncolumn', //设置显示模板 'template' => '{upd} {del}', //下面的按钮设置,与上面的模板设置相关联 'buttons' => [ 'upd' => function ($url, $model, $key) { return '<a href="' . url::toroute(['test/upd', 'id' => $key]) . '" rel="external nofollow" class="btn btn-warning">修改</a>'; }, 'del' => function ($url, $model, $key) { return '<a href="' . url::toroute(['test/del', 'id' => $key]) . '" rel="external nofollow" cl本科学位证ass="btn btn-danger">删除</a>'; }, ], ], ], ]); ?> </div> </div></div><?php echo html::jsfile('@web/js/jquery-3.3.1.min.js'); ?><script type="text/javascript"> $("#showlbtn").on("click", function () { var keys = $("#myurgridview").yiigridview('getlectedrows'); alert(keys); });</script>
显示结果如下:
本文发布于:2023-04-08 19:38:08,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/408ef72ad1442718ce3eead20cedb98e.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:YII2框架中ActiveDataProvider与GridView的配合使用操作示例.doc
本文 PDF 下载地址:YII2框架中ActiveDataProvider与GridView的配合使用操作示例.pdf
留言与评论(共有 0 条评论) |