Прежде всего, я действительно разочарован после того, как все погуглил и ничего не получил!
У меня есть 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);
в чем проблема? 🙁
Попробуй использовать var_dump($data)
в вашей функции значения, когда !isset($data[$key]['lesson_'.$lid])
и проверьте, что не так с вашими данными