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

 更新时间:2017年08月24日 17:17:36   作者:编程人,在天涯  
这篇文章主要为大家详细介绍了Yii2之ListView小部件的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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('index', [
    'dataProvider' => $dataProvider
  ]);
}

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

<?= ListView::widget([
  'dataProvider' => $dataProvider,//数据提供器
  'itemView' => '_diary',//指定item视图(该视图文件与当前视图在同一个目录下)
  'viewParams' => [//传参数给每一个item
    'moodCfg' => Mood::getAll()
  ],
  'layout' => '{items}<div class="col-lg-12 sum-pager">{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 class="item">
  <h4 style="font-weight:bold"><?= Html::encode($model->title ? $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 class="info">
    添加:<?= 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 class="glyphicon glyphicon-eye-open"></span>', ['view', 'id' => $model->id], ['title' => '查看']) ?>
    <?= Html::a('<span class="glyphicon glyphicon-pencil"></span>', ['upcreate', 'id' => $model->id], ['title' => '修改']) ?>
    <?= Html::a('<span class="glyphicon glyphicon-trash"></span>', ['delete', 'id' => $model->id], [
      'title' => '删除',
      'data' => [
        'confirm' => '您确定真的要删除 '.date('Y年m月d日', $model->day).' 的日记吗?',
        'method' => 'post',
      ]
    ]) ?>
  </div>
</div>

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • PHP利用正则表达式实现手机号码中间4位用星号(*)替换显示功能

    PHP利用正则表达式实现手机号码中间4位用星号(*)替换显示功能

    为了我们的隐私,所以我们把手机号码部分数字隐藏掉,今天小编给大家带来了PHP利用正则表达式实现手机号码中间4位用星号(*)替换显示,需要的朋友参考下吧
    2017-10-10
  • thinkphp5框架前后端分离项目实现分页功能的方法分析

    thinkphp5框架前后端分离项目实现分页功能的方法分析

    这篇文章主要介绍了thinkphp5框架前后端分离项目实现分页功能的方法,结合实例形式分析了thinkPHP5前后端分离项目的分页功能常见实现技巧与操作注意事项,需要的朋友可以参考下
    2019-10-10
  • php的api数据接口书写实例(推荐)

    php的api数据接口书写实例(推荐)

    下面小编就为大家带来一篇php的api数据接口书写实例(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • 基于linnux+phantomjs实现生成图片格式的网页快照

    基于linnux+phantomjs实现生成图片格式的网页快照

    在代码区看到一个生成站点快照的代码,看了半天才发现,作者仅仅贴出来业务代码,最核心的生成快照图片的代码反而没有给出来。 以前记得google搜索提供站点缩略图,那时候觉得好神奇,但是没有花时间去做深入的调研。昨天又遇到了,那就顺便调研下吧。
    2015-04-04
  • ThinkPHP框架实现定时执行任务的两种方法分析

    ThinkPHP框架实现定时执行任务的两种方法分析

    这篇文章主要介绍了ThinkPHP框架实现定时执行任务的两种方法,结合实例形式分析了2种被动执行定时任务的相关操作技巧与注意事项,需要的朋友可以参考下
    2018-09-09
  • Laravel Eloquent ORM 实现查询表中指定的字段

    Laravel Eloquent ORM 实现查询表中指定的字段

    今天小编就为大家分享一篇Laravel Eloquent ORM 实现查询表中指定的字段,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • PHP读取大文件的类SplFileObject使用介绍

    PHP读取大文件的类SplFileObject使用介绍

    一般读取文件我们用fopen 或者 file_get_contents ,前者可以循环读取,后者可以一次性读取,但都是将文件内容一次性加载来操作。
    2014-04-04
  • yii2的restful api路由实例详解

    yii2的restful api路由实例详解

    这篇文章主要介绍了yii2的restful api路由实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Symfony2获取web目录绝对路径、相对路径、网址的方法

    Symfony2获取web目录绝对路径、相对路径、网址的方法

    这篇文章主要介绍了Symfony2获取web目录绝对路径、相对路径、网址的方法,结合实例形式分析了Symfony获取路径与网址的常用操作技巧,并给出了Request完整文件的源码供大家下载参考,需要的朋友可以参考下
    2016-11-11
  • tp5(thinkPHP5框架)时间查询操作实例分析

    tp5(thinkPHP5框架)时间查询操作实例分析

    这篇文章主要介绍了tp5(thinkPHP5框架)时间查询操作,结合实例形式分析了thinkPHP5框架数据库中日期时间查询相关操作技巧,需要的朋友可以参考下
    2019-05-05

最新评论