我有一个数组:
$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)在传递$arr而不是$provider的渲染参数中,应该是:
$this->render('index', ['provider' => $provider]);
3)你在渲染之前错过了return语句:
return $this->render('index', ['provider' => $provider]);
另外,我不建议在箭头周围使用空格.
4)您没有在GridView中指定任何列.您可以像这样添加ID和描述:
GridView::widget([
'dataProvider' => $provider,
'columns' => [
'ID',
'Description',
],
]);
5)最后你不会将GridView回显到屏幕上.应该:
echo GridView::widget([...]);
要么
= GridView::widget([...]) ?>
标签:php,yii2
来源: https://codeday.me/bug/20190528/1171775.html