Yii2 Arraydataprovider定制价值

时间:2016-02-03 10:31:37

标签: php yii2 dataprovider

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

我有一个名为

的Arraydataprovider
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].'"/>';
                }

        ];
}

它是在for循环中生成的。

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

perl gentest.pl --dsn=dbi:mysql:host=XXX.XXX.XXX.XXX:port=NNNNN:user=username:password=pass:database=test --gendata=conf/examples/example.zz --grammar=conf/examples/example.yy --threads=1 --queries=100000 --duration=3600

它给了我错误:未定义的索引:lesson_49 但我确信$ data provider,有关键的课程_49(由var_dump证明);

有什么问题? :-(

2 个答案:

答案 0 :(得分:2)

您应使用isset()empty()

检查值是否为空

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

例如,

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

您也可以使用var_dump($data)

答案 1 :(得分:1)

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