ORM: Gestion du formattage (typage) des entrées d'une table jointe (jointure)

This commit is contained in:
xdrm-brackets 2016-07-23 12:40:01 +02:00
parent 76b73c3302
commit b01d759ffc
1 changed files with 11 additions and 5 deletions

View File

@ -659,19 +659,25 @@
$formatted = [$formatted]; $formatted = [$formatted];
/* (2) On retire les indices numériques */ /* (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) foreach($formatted as $i=>$entry)
// Pour chaque champ // Pour chaque champ
foreach($entry as $index=>$value) foreach($entry as $index=>$value)
// Si dans le schéma on applique le type // Si la colonne existe on applique le type
if( isset($this->schema['columns'][$index]) ){ if( isset($existingColumns[$index]) ){
if( $this->schema['columns'][$index]['type'] == 'int' ) if( $existingColumns[$index]['type'] == 'int' )
$formatted[$i][$index] = intval( $value ); $formatted[$i][$index] = intval( $value );
else if( $this->schema['columns'][$index]['type'] == 'float' ) else if( $existingColumns[$index]['type'] == 'float' )
$formatted[$i][$index] = floatval( $value ); $formatted[$i][$index] = floatval( $value );
}else // Si pas dans le schéma, on le retire }else // Si pas dans le schéma, on le retire