Nous travaillons sur un énorme projet utilisant Cakephp. Nous avons commencé à utiliser MySQL, mais maintenant ils demandent à passer à Oracle! Maintenant, nous venons de commencer cette belle tâche! :)CakePHP + Oracle + CamelCased nom de la table de colonnes numéro
Nous sommes pas en utilisant des modèles de cakephp, mais les noms chameau en cas de tables et de ses colonnes (C'était une exigence du client!).
Les noms de table de colonnes dans Oracle sont sensibles à la casse puisque nous mettons le nom entre "" (guillemets) lors de la création de tables. Si ce n'est pas le cas, Oracle met les majuscules.
Mais le lecteur d'oracle de cakephp semble ignorer la configuration camelcased, analyser le nom de champ toujours insensible à la casse et transformer les noms en minuscules dans le tableau des résultats de la requête.
Au lieu de
$res['TableName']['ColumnName'] //camelcased
J'obtenu
$res['TableName']['columnname'] //lowercased! :(
Est-ce que quelqu'un a une idée comment la surmonter?
Les noms de colonnes dans oracle dbms ** sont sensibles à la casse. Et si vous ne le spécifiez pas explicitement entre guillemets, tous les noms sont en majuscule. – zerkms
Vous avez raison, zerkms! J'ai mis à jour la question. – colares
Mise à jour: La modification de la notation CamelCase n'était pas une option. Pour l'instant, nous avons fait ce qui suit: - Améliorations dans le pilote CakePHP pour Oracle (nous pouvons poster plus tard!) - Créé un script pour mapper le nom des tables (par exemple idperson => IdPerson). Ce n'est probablement pas la meilleure approche. Au moins, nous utiliserons le cache de requête. ;) En outre, nous sommes confrontés à de nombreux problèmes causés par les différences entre MySQL et Oracle, leurs pilotes dans CakePHP. Nous savons déjà que le "pilote qui change juste" est une pure illusion. Mais avait encore des problèmes inattendus. Ce serait un bon papier. Je vous tiendrai au courant. – colares