Yii2 的ListView显示数据
song100e 发布于:2016-4-22 14:27 分类:Yii2 有 1866 人浏览,获得评论 0 条 标签: ListView
yii\widgets\ListView 小部件用于显示数据提供者 data provider 提供的数据。 每个数据模型用指定的视图文件 yii\widgets\ListView::$itemView 来渲染。 因为它提供开箱即用式的分页、排序以及过滤这样一些特性,所以它可以很方便地为最终用户显示信息并同时创建数据管理界面。
控制器:
<?php namespace app\controllers; use yii; use yii\data\Pagination; use app\models\Member; use yii\data\ActiveDataProvider; class CenterController extends BaseController { public $layout = '//ucenter'; /** * 会员列表 * @return string */ public function actionIndex() { $query = Member::find()->where(['status'=>'enable']); $dataProvider = new ActiveDataProvider([ 'query' => $query, 'pagination' => [ 'pageSize' => 20, ], ]); return $this->render('index', [ 'dataProvider' => $dataProvider ]); } } ?>
视图:
<?php use yii\helpers\Html; use yii\widgets\ListView; echo ListView::widget([ 'dataProvider' => $dataProvider, 'itemOptions' => [ 'tag'=>'ul', 'class' => 'item', 'style' => 'list-style:none;'], 'itemView' => '_item',//子视图 /*'itemView' => function ($model, $key, $index, $widget) { return Html::a(Html::encode($model->name), ['center/detail', 'id' => $model->id]); }*/ 'pager'=>[ 'maxButtonCount'=>20, 'nextPageLabel'=>Yii::t('app','下一页'), 'prevPageLabel'=>Yii::t('app','上一页'), ], ]); ?>
子视图:
<?php use yii\helpers\Html; use yii\helpers\HtmlPurifier; ?> <li class="post" style="display:inline"> ID:<?= Html::encode($model->id) ?></strong> </li> <li class="post" style="display:inline;margin-left:10px;"> 用户名:<a href="/center/detail?id=<?= $model->id ?>" target="_blank"> <?= HtmlPurifier::process($model->name)?> </a> </li> ?>
赞助我,共同学习进步!

