将 Yii2 GridView 与数据数组一起使用

Using Yii2 GridView with array of data

我有一个数组:

$arr = ['ID' => 'A1', 'Description' => 'Item to be sold', ...]

在控制器中:

$provider = new ArrayDataProvider([
'allModels' => $arr,
//'sort' =>['attributes' => ['ID', 'Description'],],
'pagination' => ['pageSize' => 5]
]);
$this -> render('index', ['provider' => $arr]);

可见(index.php):

GridView::widget([
'dataProvider' => $provider,
]);

页面上没有任何结果。哪里错了?

您的代码中几乎没有错误。

1) $arr 应该有这样的结构:

$arr = [
    ['ID' => 'A1', 'Description' => 'Item to be sold'],
    ...
],

2) 在你传递的 render 参数中 $arr 而不是 $provider,应该是:

$this->render('index', ['provider' => $provider]);

3) 您在 render:

之前错过了 return 语句
return $this->render('index', ['provider' => $provider]);

此外,我不建议在箭头周围使用空格。

4) 您没有在 GridView 中指定任何列。您可以像这样添加 IDDescription

GridView::widget([
    'dataProvider' => $provider,
    'columns' => [
        'ID',
        'Description',
    ],
]);

5) 最后,您没有将 GridView 回显到屏幕上。应该是:

echo GridView::widget([...]);

<?= GridView::widget([...]) ?>