一部のレガシー データ モデル/スキーマを燃料 API に移行しようとしていますが、 2 つのプロパティto_array()を持つモデルのメソッドで奇妙な問題が発生しました。$_belongs_to
メソッドを使用せずにモデルをロードすると、to_array()両方の関連アイテムを熱心なロードで適切に受け取りますが、これらをこの関数に渡してデータを変換し、新しい API で消化できるようにするとすぐに、2 番目の$_belongs_toプロパティが取り除かれます。配列内の小道具を並べ替えると、$belongs_to配列内の最初のアイテムが表示されます。
私の質問は、2 番目の関係を失わずにこのデータを配列に変換するにはどうすればよいですか?
参照しやすいようにクリーンアップされた例を次に示します。
取引モデル:
protected static $_belongs_to = array(
'benefactor' => array(
'key_from' => 'from_user_id',
'model_to' => 'Model\\Legacy\\User',
'key_to' => 'id',
),
'user' => array(
'key_from' => 'user_id',
'model_to' => 'Model\\Legacy\\User',
'key_to' => 'id',
),
);
トランザクション コントローラ:
$result = array();
$id = $this->param('id');
if (!empty($id)) {
$transaction = Transaction::find($id, array('related' => array('user', 'benefactor',)));
if (!empty($transaction)) {
// Works -- both benefactor and user are returned
$result['transaction_works'] = $transaction;
// Does not work -- only the benefactor is returned
$result['transaction_doesnt_work'] = $transaction->to_array();
}
}
return $this->response($result);