Yii - ListView 组件



ListView 组件使用数据提供者来显示数据。每个模型都使用指定的视图文件进行渲染。

步骤 1 - 以这种方式修改 actionDataWidget() 方法。

public function actionDataWidget() {
   $dataProvider = new ActiveDataProvider([
      'query' => MyUser::find(),
      'pagination' => [
         'pageSize' => 20,
      ],
   ]);
   return $this->render('datawidget', [
      'dataProvider' => $dataProvider
   ]);
}

在上面的代码中,我们创建了一个数据提供者并将其传递给 datawidget 视图。

步骤 2 - 以这种方式修改 datawidget 视图文件。

<?php
   use yii\widgets\ListView;
   echo ListView::widget([
      'dataProvider' => $dataProvider,
      'itemView' => '_user',
   ]);
?>

我们渲染 ListView 组件。每个模型都在 _user 视图中渲染。

步骤 3 - 在 views/site 文件夹内创建一个名为 _user.php 的文件。

<?php
   use yii\helpers\Html;
   use yii\helpers\HtmlPurifier;
?>
<div class = "user">
   <?= $model->id ?>
   <?= Html::encode($model->name) ?>
   <?= HtmlPurifier::process($model->email) ?>
</div>

步骤 4 - 在 Web 浏览器的地址栏中输入 https://127.0.0.1:8080/index.php?r=site/data-widget,您将看到以下内容。

ListView Widget Example Output
广告