Yii2 Arraydataprovider 自定义值

Yii2 Arraydataprovider custom value

首先,谷歌搜索一无所获,我真的很失望!

我有一个 Arraydataprovider 叫做

$data = [
    400 => [
        'name' => 'x',
        'lesson_1' => '10',
        'lesson_2' => '9',
        ...
    ],
    389 => ...
]

它是在 for 循环中生成的。

我希望值显示在文本框中:

foreach($lessons as $lid => $name) {
        $attrs[] = [
                'attribute' => 'lesson_' . $lid,
                'label' => $name['name'], 
                'format' => 'raw',
                'value' => function($model, $key, $index) use($lid, &$data) {
                        return '<input class="txt" data-lid="'.$lid.'" type="text" value="'.$data[$key]['lesson_'.$lid].'"/>';
                }

        ];
}

它给我错误:未定义索引:lesson_49 但我确定 $data 提供程序具有密钥 lesson_49(由 var_dump 证明);

有什么问题? :-(

!isset($data[$key]['lesson_'.$lid]) 时尝试在您的值函数中使用 var_dump($data) 并检查您的数据有什么问题

您应该使用 isset() or empty() 检查值是否为空:

使用 isset() 内部值函数检查空值。

例如,

(isset($data[$key]['lesson_'.$lid]) ? $data[$key]['lesson_'.$lid] : '-';

您也可以使用var_dump($data)