Recorrer modelos con un for each
Recorrer modelos con un for each
Algunas veces en necesario recorrer los modelos completos, es decir iterar los modelos de una consulta para realizar una cierta operación.
//Metodo de clase
public static function getModelsReportesFiltros($entidad_id,$fechaInicial,$FechaFinal,$estado_id=0,$municipio_id=0) {
$query = Reporte::find();
$query->joinWith(['cliente'])
->joinWith(['cliente.municipio'])
->where(['cliente.entidad_id' => $entidad_id]); //Siempre filtrar por entidad primero
if($estado_id>0){
$query->andWhere(['municipio.estado_id' => $estado_id ]);
}
if($municipio_id>0){
$query->andWhere(['cliente.municipio_id' => $municipio_id ]);
}
$query->andWhere(['between', 'fecha_hora', $fechaInicial, $FechaFinal]); //Siempre hay un rando de fechas de búsqueda
//$modelos = $query;
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
return $dataProvider;
}
Para recorrer el arreglo de los modelos
//Mandas llamar al método pasandole nuestras variables
$modelsReportes = MapaRepo::getModelsReportesFiltros( $entidad_id, $fechaInicial, $FechaFinal, $estado_id, $municipio_id);
var_dump($modelsReportes); //Podemos ver los objetos y los modelos
//Podriamos jugar con los modelos y ver que tienen dentro, en mi caso un modelos puede tener arreglos anidados por lo a partir de alli puedes usarlos
foreach ($modelsReportes->models as $model) {
echo "<br>Modelo:" . $model->id . " Calificacion:" . $model->reporteDetalles;
//echo "addMarker({$model->latitud}, {$model->longitud});";
}
Actualizado: 29-Nov-2022
Comentarios
Publicar un comentario