Всем привет.
Вывожу данные с помощью GridView:
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[
'header' => 'Магазин',
'attribute' => 'shop_id',
'filter' => Html::activeDropDownList(
$searchModel,
'shop_id',
$shopsList,
['class' => 'form-control']),
],
'name',
'phone',
Переменную
$shopsList заранее передаю через контроллер:
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
'shopsList' => $shops
]);
При формировании секции фильтров в GridView ее прекрасно видно, данные из нее берутся, проблем нет. А вот когда я пытаюсь изменить значение value, т.е. код обретает примерно такой вид:
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[
'header' => 'Магазин',
'attribute' => 'shop_id',
'value' => function($data){
return $shopsList[$data->shop_id];
},
'filter' => Html::activeDropDownList(
$searchModel,
'shop_id',
$shopsList,
['class' => 'form-control']),
],
'name',
'phone',
то yii2 мне выкатывает ошибку: Undefined variable: shopsList
Почему $shopsList не видно в безымянной функции? Ее нужно как-то иначе туда передать?