2017-09-12 3 views
0

J'utilise CakePHP avec la base de données Firebird avec le plugin cakephp-firebird-driver, et j'ai besoin de convertir les clés d'objet liées en majuscules.Objets liés en majuscules dans CakePHP 3

Controller:

$this->paginate = [ 
    'contain' => ['Fazendas'] 
]; 

Résultat:

{ 
    "LOTES": [ 
    { 
     "ID": 12, 
     "LOTE": "\u003C 150 Kg", 
     "FAIXA_INICIAL": "0.000000", 
     "FAIXA_FINAL": "150.000000", 
     "FAZENDA_ID": 5, 
     "fazenda": { 
      "ID": 5, 
      "NOME": "FAZENDA 1", 
      "LOGRADOURO": null, 
      "INSCRICAO_ESTADUAL": null, 
      "CEP": null, 
      "TELEFONE": null, 
      "CNPJ": null, 
      "PROPRIETARIO_ID": null, 
      "CIDADE_ID": null 
     } 
    } 
} 

Mais la "fazenda" conserve en minuscules.

Comment puis-je faire cela?

+0

Sans aucune connaissance de CakePHP, est-ce généré automatiquement à partir des métadonnées de la base de données? Fazenda est-il un nom de table ou de colonne, et est-il possible qu'il soit également stocké en minuscules dans les métadonnées de la base de données (parce qu'il a été créé en tant que nom d'objet entre guillemets)? –

Répondre

2

En supposant que "fazenda" est une association et par convention dans l'entité, il est converti en inférieur cased + souligné par défaut.

Change your property name for that assoc.

Exemple tiré de la documentation (les lire!):

$this->belongsTo('Authors', [ 
    'className' => 'Publishing.Authors', 
    'foreignKey' => 'authorid', 
    'propertyName' => 'person' 
]); 
+0

Merci pour votre réponse. Il fonctionne comme un charme. –

1

Peut-être votre relation est hasOne ou belongsTo alors vous pouvez ajouter une propriété
'propertyName' => 'FAZENDA' dans le tableau de relation.