Топливный PHP - метод to_array() и множественные отношения принадлежат к этому и энергичная загрузка
Я пытаюсь перенести некоторые устаревшие модели / схемы данных в API топлива, и у меня возникла странная проблема с to_array()
метод на модели, которая имеет два $_belongs_to
свойства.
Когда я загружаю модель без to_array()
метод, я правильно получаю оба связанных элемента с энергичной загрузкой, но как только я пропущу их через эту функцию, чтобы преобразовать данные, чтобы сделать их усваиваемыми новым API, он удалит второй $_belongs_to
имущество. Если я переупорядочу реквизит в $belongs_to
массив, он покажет, какой элемент является первым в массиве.
У меня вопрос, как я могу преобразовать эти данные в массив без потери второго отношения?
Вот несколько приведенных примеров для удобства использования:
Модель транзакции:
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);
1 ответ
Любой гугл, ищущий помощи по этому вопросу, по-видимому, смог вернуть все отношения, просто выполнив to_array()
Метод перед установкой переменной return/results:
$result = array();
$id = $this->param('id');
if (!empty($id)) {
$transaction = Transaction::find($id, array('related' => array('user', 'benefactor',)));
if (!empty($transaction)) {
$transaction->to_array();
$result['transaction_works'] = $transaction;
}
}
return $this->response($result);
Удачи!