Aquí, estoy generando columna dinámica en yii2 GridView
$gridColumns = [];
$gridColumns[] = [
'class' => 'yii\grid\SerialColumn',
'contentOptions' => ['width' => 10],
];
foreach ($CategoryList as $categoryId => $categoryName) {
$gridColumns[] = [
'label' => $categoryName,
'value' => function($model) {
return $categoryId; <---- categoryId use in function
}
];
}
GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => $gridColumns,
]);
¿Cómo puedo usar categorId en la función gridView Closure?
Cada columna tiene $ categoryId único como 1,2,3 según el bucle
0
Shringiraj Dewangan
1 ene. 2020 a las 10:35
2 respuestas
La mejor respuesta
foreach ($CategoryList as $categoryId => $categoryName) {
$categoryIdVariable = "$categoryId"; <---- store value in a variable
$$categoryIdVariable = $categoryIdVariable; <---- store variable in another variable
$gridColumns[] = [
'label' => $categoryName,
'value' => function($model) use($categoryIdVariable) { <---- and use it like a string variable
$categoryId = $categoryIdVariable;
return $categoryId; <---- dynamic categoryId use in function
}
];
}
0
Shringiraj Dewangan
4 ene. 2020 a las 13:08
Usar la función anónima use ()
$gridColumns[] = [
'label' => $categoryName,
'value' => function($model) use ($categoryId) {
return $categoryId;
}
];
0
Insane Skull
1 ene. 2020 a las 08:10
Preguntas relacionadas
Nuevas preguntas
gridview
Una vista de cuadrícula es un control para mostrar y manipular datos de una variedad de fuentes de datos.