@@ -380,10 +380,14 @@ public function select($columns = '*'): static
380380
381381 /**
382382 * Sélectionne avec un alias explicite
383+ *
384+ * @param Expression|string $column Colonnes à sélectionner
383385 */
384- public function selectAs (string $ column , string $ alias ): static
386+ public function selectAs ($ column , string $ alias ): static
385387 {
386- $ this ->columns [] = $ this ->buildColumnName ($ column ) . ' AS ' . $ this ->db ->escapeIdentifiers ($ alias );
388+ $ column = $ column instanceof Expression ? $ column : $ this ->buildColumnName ($ column );
389+
390+ $ this ->columns [] = $ column . ' AS ' . $ this ->db ->escapeIdentifiers ($ alias );
387391
388392 return $ this ->asCrud ('select ' );
389393 }
@@ -946,53 +950,6 @@ public function row(int $index, $type = PDO::FETCH_OBJ): mixed
946950 return $ this ->execute ()->row ($ index , $ type );
947951 }
948952
949- /**
950- * Récupère une valeur spécifique
951- *
952- * @return list<mixed>|mixed
953- */
954- public function value (array |string $ name )
955- {
956- $ names = (array ) $ name ;
957- $ values = [];
958-
959- $ row = $ this ->select ($ names )->first (PDO ::FETCH_OBJ );
960-
961- foreach ($ names as $ v ) {
962- if (is_string ($ v )) {
963- $ values [] = $ row ->{$ v } ?? null ;
964- }
965- }
966-
967- return is_string ($ name ) ? $ values [0 ] : $ values ;
968- }
969-
970- /**
971- * Récupère plusieurs valeurs
972- *
973- * @return list<mixed>
974- */
975- public function values (array |string $ name ): array
976- {
977- $ names = (array ) $ name ;
978- $ columns = [];
979-
980- $ rows = $ this ->select ($ names )->all (PDO ::FETCH_OBJ );
981-
982- foreach ($ rows as $ row ) {
983- $ values = [];
984-
985- foreach ($ names as $ v ) {
986- if (is_string ($ v )) {
987- $ values [$ v ] = $ row ->{$ v } ?? null ;
988- }
989- }
990- $ columns [] = is_string ($ name ) ? ($ values [$ name ] ?? null ) : $ values ;
991- }
992-
993- return $ columns ;
994- }
995-
996953 /**
997954 * Vérifie si des enregistrements existent
998955 */
@@ -1305,6 +1262,8 @@ public function reset(): static
13051262 $ this ->lock = null ;
13061263 $ this ->uniqueBy = [];
13071264 $ this ->updateColumns = [];
1265+
1266+ $ this ->clearSelectedColumnsCache ();
13081267 $ this ->db ->setAliasedTables ([]);
13091268
13101269 return $ this ->asCrud ('select ' );
0 commit comments