2017-09-12 21 views
0

プラグインcakephp-firebird-driverでFirebirdデータベースでCakePHPを使用しています。関連するオブジェクトキーを大文字に変換する必要があります。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'を追加することもあるかもしれませ。

関連する問題