cakephp3.4を使用しています。
entityで作成した仮想プロパティの値があるとします。
これをajaxで受け取る方法はあるのでしょうか?
ご存知の方がいらっしゃいましたらご教授いただけないでしょうか?
現在のコードは以下のようになっています。
php
1entity 2 3class OrderHeader extends Entity 4{ 5 protected $_accessible = [ 6 '*' => true, 7 'id' => false 8 ]; 9 10 //仮想プロパティにアクセスできるように$_virtualに指定 11 protected $_virtual = ['PaymentName']; 12 13 //仮想プロパティを設定 14 protected function _getPaymentName(){ 15 if($this->payment == 1){ 16 return '銀行振込'; 17 } 18 if($this->payment == 2){ 19 return 'クレジット/コンビニ'; 20 } 21 } 22} 23
php
1controller 2 public function ajaxReturnData(){ 3 if($this->request->is('ajax')){ 4 //postで受注IDを受け取る 5 $data = $this->request->data['arr_id']; 6 7 $result = $this->OrderHeaders 8 ->find() 9 ->where(['OrderHeaders.id IN' => $data]) 10 ->all(); 11 12 $this->set(compact('result')); 13 $this->set('_serialize', ['result']); 14 15 } 16 } 17
javascript
1function ajaxCreateCSV(arr_id){ 2 3 $.ajax({ 4 url: "./ajaxReturnData", 5 type: "POST", 6 data: { "arr_id":arr_id }, 7 dataType: "json", 8 success : function(response){ 9 10 if(response != null){ 11 //ここで仮想プロパティの値を取得したい 12 console.log(response); 13 return; 14 15 } 16 }, 17 error: function(){ 18 //通信失敗時の処理 19 alert('通信失敗'); 20 } 21 }); 22}
ブラウザで受け取ったobjectをconsole.logでみると、
実在のプロパティ payment
の値は当然見れるのですが、
仮想プロパティ payment_name
がどこにも見当たりません。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。