diff --git a/manager/ORM/Rows.php b/manager/ORM/Rows.php index 0186f13..5344be8 100644 --- a/manager/ORM/Rows.php +++ b/manager/ORM/Rows.php @@ -659,19 +659,25 @@ $formatted = [$formatted]; /* (2) On retire les indices numériques */ + // {1} On récupère les colonnes locales // + $existingColumns = $this->schema['columns']; - // Pour chaque entrée + // {2} On ajoute les colonnes des jointures // + foreach($this->joined as $rows) + $existingColumns = array_merge( $existingColumns, $rows->schema['columns'] ); + + // {3} On vérifie chaque clé, si c'est une colonne qui existe // foreach($formatted as $i=>$entry) // Pour chaque champ foreach($entry as $index=>$value) - // Si dans le schéma on applique le type - if( isset($this->schema['columns'][$index]) ){ + // Si la colonne existe on applique le type + if( isset($existingColumns[$index]) ){ - if( $this->schema['columns'][$index]['type'] == 'int' ) + if( $existingColumns[$index]['type'] == 'int' ) $formatted[$i][$index] = intval( $value ); - else if( $this->schema['columns'][$index]['type'] == 'float' ) + else if( $existingColumns[$index]['type'] == 'float' ) $formatted[$i][$index] = floatval( $value ); }else // Si pas dans le schéma, on le retire