我正在尝试将 View 文件中的变量访问到Gridview中,但是它引发了it should be array but null given错误,即我在 View 文件顶部声明了$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>',
],

但它引发以下错误

最佳答案

解释一下,小部件中没有$totalDays,因为整个功能仅在呈现小部件时才运行,不再声明$totalDays。正如上面@arogachev所暗示的那样,您需要在模型中创建$totalDays,然后才能对其进行访问。在您的模型中尝试一下;

public function getTotalDays(){
//Your logic here to generate totalDays
return $totalDays;
}

然后,您可以像这样在您的 View 中使用它;
[
    '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>',
],

关于php - Gridview函数yii2中的访问变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34444766/

10-10 13:06