Mik*_*oss 5 php yii2 yii2-advanced-app yii2-basic-app
我正在尝试访问视图文件上的变量,Gridview但它抛出了it should be array but null given我在$totalDays视图文件顶部声明的错误,我正在使用它,Gridview如下所示
[
'attribute' => 'class_id',
'format' => 'raw',
'label' => "Class Date",
'value' => function ($model) {
array_push($totalDays,$model->class->date);
return $model->class->date;
},
'footer'=> '<span>Total Days</span>',
],
Run Code Online (Sandbox Code Playgroud)
但它抛出以下错误
array_push() 期望参数 1 是数组,给定 null
use在value可调用函数中的函数签名后插入:
[
'attribute' => 'class_id',
'format' => 'raw',
'label' => "Class Date",
'value' => function ($model) use($totaleDays) {
array_push($totalDays,$model->class->date);
return $model->class->date;
},
'footer'=> '<span>Total Days</span>',
],
Run Code Online (Sandbox Code Playgroud)
解释一下,$totalDays在小部件中不可用,因为整个函数仅在呈现小部件时才运行,$totalDays不再声明。正如@arogachev 上面暗示的那样,您需要$totalDays在模型中制作,然后才能访问它。在你的模型中试试这个;
public function getTotalDays(){
//Your logic here to generate totalDays
return $totalDays;
}
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样在你的视图中使用它;
[
'attribute' => 'class_id',
'format' => 'raw',
'label' => "Class Date",
'value' => function ($model) {
array_push($model->totalDays, totalDays,$model->class->date);
return $model->class->date;
},
'footer'=> '<span>Total Days</span>',
],
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2329 次 |
| 最近记录: |