2017-09-12 75 views
0

我将CakePHP与Firebird数据库一起使用,插件为cakephp-firebird-driver,我需要将相关对象键转换为大写。CakePHP中的大写相关对象3

控制器:

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

结果:

{ 
    "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 
     } 
    } 
} 

但 “庄园” 保持小写。

我该怎么做?

+0

没有CakePHP的任何知识,这是从数据库元数据自动生成的? fazenda是表名还是列名?它是否有可能实际上也作为小写名称存储在数据库元数据中(因为它是作为带引号的对象名创建的)? –

回答

2

假设“fazenda”是一个关联关系,并且在实体中由convention将其转换为默认情况下标记为下方的下方的+。

Change your property name for that assoc.

例如,从文档(阅读它们!)采取:

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

谢谢你的回答。它像一个魅力。 –

1

可能是你的你的关系是hasOnebelongsTo,那么你可就阵列添加属性
'propertyName' => 'FAZENDA'