前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Yii2框架之ListView小部件的使用方法

Yii2框架之ListView小部件的使用方法

作者头像
用户2323866
修改2021-07-02 10:17:04
7280
修改2021-07-02 10:17:04
举报
文章被收录于专栏:技术派

ListView是yii框架中类似GridView,也是用于展示多条数据的小部件,相比GridView,ListView可以更加灵活地设置数据展示的格式。 下面以我自己做的一个使用ListView来展示数据的例子,来简单讲解一下ListView小部件的使用。 首先需要在控制器中new一个数据提供器,传给视图,示例代码如下:

public function actionIndex() { $dataProvider = new ActiveDataProvider([ 'query' => Diary::find()->orderBy('day'), 'pagination' => [//分页 'pagesize' => 4 ] ]); return $this->render('/【关于环境方面,我觉得DOCKER是非常合适和快速部署的一个方式】/index', [ 'dataProvider' => $dataProvider ]); }

接下来就是在视图文件中使用ListView来展示数据了,示例代码如下:

<?= ListView::widget([ 'dataProvider' => $dataProvider,//数据提供器 'itemView' => '_diary',//指定item视图(该视图文件与当前视图在同一个目录下) 'viewParams' => [//传参数给每一个item 'moodCfg' => Mood::getAll() ], 'layout' /【本文中一些PHP版本可能是以前的,如果不是一定要,建议PHP尽量使用7.2以上的版本】/=> '{items}<div >{summary}{pager}</div>',//整个ListView布局 'itemOptions' => [//针对渲染的单个item 'tag' => 'div', 'class' => 'col-lg-3' ], /* 'options' => [//针对整个ListView 'tag' => 'div', 'class' => 'col-lg-3' ], */ 'pager' => [ //'options' => ['class' => 'hidden'],//关闭分页(默认开启) / 分页按钮设置 / 'maxButtonCount' => 5,//最多显示几个分页按钮 'firstPageLabel' => '首页', 'prevPageLabel' => '上一页', 'nextPageLabel' => '下一页', 'lastPageLabel' => '尾页' ] ]);?>

这里说明一下,由于ListView和GridView继承于同一个父类BaseListView,所以有很多设置参数是一样的,可以通过参考GridView的参数设置来设置ListView。 最后就是在ListView的'itemView'参数指定的视图文件中来编写每一条数据的展示格式了,示例代码如下:

<div > <h4 style="font-weight:bold"><?= Html::encode($model-&gt;title &#63; $model->title : '(无题)') ?></h4>

<p style="font-size:13px"> <span style="color:orangered"><?= date('Y.m.d', $model->day) ?></span><br> <span style="color:#999">心情:<?= $moodCfg[$model->mood] ?></span>//这里访问ListView的'viewParams'参数传过来的参数$moodCfg </p>

<div style="margin:15px 0">

<?php echo HtmlPurifier::process(mb_substr($model->content, 0, 25).'......'); ?> </div>

<p > 添加:<?= date('Y-m-d H:i:s', $model->created_at) ?><br> 最后修改:<?= date('Y-m-d H:i:s', $model->updated_at) ?> </p>

<div style="text-align:right"> <?= Html::a('<span ></span>', ['view', 'id' => $model->id], ['title' => '查看']) ?> <?= Html::a('<span ></span>', ['upcreate', 'id' => $model->id], ['title' => '修改']) ?> <?= Html::a('<span ></span>', ['delete', 'id' => $model->id], [ 'title' => '删除', 'data' => [ 'confirm' => '您确定真的要删除 '.date('Y年m月d日', $model->day).' 的日记吗?', 'method' => 'post', ] ]) ?> </div> </div>

最后的最后,效果图展示时间(略丑,勿怪):

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档