ListView是yii框架中类似GridView,也是用于展示多条数据的小部件,相比GridView,ListView可以更加灵活地设置数据展示的格式。
下面以我自己做的一个使用ListView来展示数据的例子,来简单讲解一下ListView小部件的使用。
首先需要在控制器中new一个数据提供器,传给视图,示例代码如下:
接下来就是在视图文件中使用ListView来展示数据了,示例代码如下:
这里说明一下,由于ListView和GridView继承于同一个父类BaseListView,所以有很多设置参数是一样的,可以通过参考GridView的参数设置来设置ListView。
最后就是在ListView的'itemView'参数指定的视图文件中来编写每一条数据的展示格式了,示例代码如下:
<p style="font-size:13px">
<span style="color:orangered"><?= date('Y.m.d',$model->day) ?>
<span style="color:#999">心情:<?= $moodCfg[$model->mood] ?>//这里访问ListView的'viewParams'参数传过来的参数$moodCfg
<div style="margin:15px 0">
<?php echo HtmlPurifier::process(mb_substr($model->content,25).'......'); ?>
<p class="info">
添加:<?= date('Y-m-d H:i:s',$model->created_at) ?>
最后修改:<?= date('Y-m-d H:i:s',$model->updated_at) ?>
<div style="text-align:right">
<?= Html::a('<span class="glyphicon glyphicon-eye-open">',['view','id' => $model->id],['title' => '查看']) ?>
<?= Html::a('<span class="glyphicon glyphicon-pencil">',['upcreate',['title' => '修改']) ?>
<?= Html::a('<span class="glyphicon glyphicon-trash">',['delete',[
'title' => '删除','data' => [
'confirm' => '您确定真的要删除 '.date('Y年m月d日',$model->day).' 的日记吗?','method' => 'post',]
]) ?>