使用Yii2 GridView和数据数组

时间:2015-01-07 17:21:11

标签: php yii2

我有一个数组:

$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 个答案:

答案 0 :(得分:6)

您的代码中存在少量错误。

1) $arr应具有以下结构:

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

2)在您通过render而不是$arr的{​​{1}}参数中,应该是:

$provider

3)您在$this->render('index', ['provider' => $provider]); 之前错过了return声明:

render

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

4)您未在return $this->render('index', ['provider' => $provider]); 中指定任何列。您可以像这样添加GridViewID

Description

5)最后你不会将GridView回显到屏幕上。应该是:

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

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