Tengo una función en mi modelo de profesor que devuelve categorías array.Yii gridview use variable externa en valor
getCaterogies() {
return array('1' => 'short tempered', '2' => 'funny', '3' => 'visionary', ...);
}
estoy almacenando los índices en la base de datos y la visualización de valores de todo el mundo utilizando el valor de la matriz correspondiente a la ..
$categories = $teacher->categories;
$category = $categories[$teacher->category];
que estoy haciendo esto porque una vez que alguien me sugirió no almacenar cadenas en una base de datos que son estados, en su lugar almacenar valores enteros, y almacenar la conversión en la base de datos o definirla en el modelo ht. El problema con las cadenas es que son más propensas a los errores humanos en las comparaciones. Tal vez por sensibilidad a las mayúsculas y minúsculas.
Ahora el problema al que me enfrento es que al mostrar los valores en gridview, necesito escribir las 2 líneas en un campo de valor, pero es una expresión, y las variables externas tampoco lo toman.
¿Cómo puedo hacer que esto funcione para gridview?
funciona como un encanto ... ambas soluciones ... gracias ..:) –
Consejo: Si es necesario, puede llamar a una función de modelo (para cada registro), para devolver los valores múltiples que desea imprimir en diferentes columnas gridview para dicho registro. En lugar de llamar a la función en cada columna, puede llamarla por la primera columna y actualizar $ categorías con el resultado. Las otras columnas podrían simplemente leer desde $ categorías. Para hacer esto, 'usa' el parámetro por referencia (simplemente agrega un signo & (&) al frente del parámetro cuando se incluye, no también dentro de la función). 'valor' => función ($ data, $ fila) use (& $ categorías) { $ categories = ... }, –