将 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
中指定任何列。您可以像这样添加 ID
和 Description
:
GridView::widget([
'dataProvider' => $provider,
'columns' => [
'ID',
'Description',
],
]);
5) 最后,您没有将 GridView 回显到屏幕上。应该是:
echo GridView::widget([...]);
或
<?= GridView::widget([...]) ?>
我有一个数组:
$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
中指定任何列。您可以像这样添加 ID
和 Description
:
GridView::widget([
'dataProvider' => $provider,
'columns' => [
'ID',
'Description',
],
]);
5) 最后,您没有将 GridView 回显到屏幕上。应该是:
echo GridView::widget([...]);
或
<?= GridView::widget([...]) ?>