Hola buenas tardes, al realizar el ./guaraní regenerar en producción (si esta setado el es_producción = 1 en el bases ini), nos salta el warning de php “PHP Notice: Trying to access array offset on value of type int in /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/modelo/toba_modelo_proyecto.php on line 608”. Notamos que esto nos trae problemas en un reporte personalizado al estar seteado es_producción = 1, en test y desarrollo no, porque no sale dicho error al regenerar . Estamos en la versión 3.20.0 y vimos que en otros post hablaban de que el problema iba a estar resuelto en próximas versiones, como a corto plazo no tenemos programada una actualización de versión abordamos el problema y llegamos a detectar que en el método “get_descripciones_items($datos)” del archivo “toba_modelo_proyecto.php”:
$desc = array();
if (! empty($datos)) {
foreach (array_keys($datos[‘items’]) as $fila) {
$desc[$fila[‘item’]] = $fila[‘nombre’];
}
}
return $desc;
se está haciendo un array_keys de ($datos[‘items’]) lo que devolvería como resultado un array con clave de tipo int y luego en la filia siguiente se intenta acceder al mismo array con una clave de tipo string ej: ‘nombre’ lo que derivaría en el error mencionado arriba, vimos como posible solución no hacer el array_keys de ($datos[‘items’]) para que a $fila se asignen los arrays dentro de $datos[‘items’] y así poder acceder a $fila por la clave de tipo string.
Queríamos saber si esta solución es válida? Por lo que pudimos probar se solucionó el PHP Notice… y todo parece funcionar normal, pero queríamos asegurarnos y consultar previamente a implementarlo.
Saludos y gracias.