php gridview,php – 使用Yii2 GridView和数据数组

在Yii2框架中,遇到一个关于ArrayDataProvider的问题,导致GridView没有显示数据。错误在于数组结构不正确,应为多维数组;在控制器中传递参数到视图时混淆了变量名;缺少了return语句;并且没有指定GridView的列。修正后的代码包括调整数组结构、正确传递$dataProvider、添加return和指定显示列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有一个数组:

$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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值