Yii2 Arraydataprovider пользовательское значение

Прежде всего, я действительно разочарован после того, как все погуглил и ничего не получил!

У меня есть 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].'"/>';
}

];
}

Это дает мне ошибку: Неопределенный индекс: урок_49
Но я уверен, что у $ data провайдера есть ключ lesson_49 (доказано var_dump);

в чем проблема? 🙁

0

Решение

Попробуй использовать var_dump($data) в вашей функции значения, когда !isset($data[$key]['lesson_'.$lid]) и проверьте, что не так с вашими данными

1

Другие решения

Вы должны проверить, что значение пусто или не используется Исеть () или же пустой ():

использование isset() функция внутреннего значения для проверки пустого значения.

Например,

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

Вы также можете использовать var_dump($data),

2