Controller_Something extends Controller_Rest {
public function get_something() {
$query = Model_Something::query()->related('hasMany')->get();
return $this->response($query);
}
}
Возвращает:
{
stuff: here,
looks: good,
hasMany: {
151251: {
id: 151251,
other: stuff
}
}
}
Я хочу, чтобы отношения были массивами:
{
stuff: here,
looks: good,
hasMany: [
{
id: 151251,
other: stuff
}
]
}
Это происходит потому, что ORM возвращает связанные массивы результатов с ключами, соответствующими PKEY записи, и JSON интерпретирует это как объект. Я хочу, чтобы эти массивы проходили через array_values()
или что-то в этом роде, поэтому результат JSON будет использовать Array.
В настоящее время я делаю это, чтобы "решить" проблему:
$res = Format::forge($result_set)->to_array();
$res['hasMany'] = array_values($res['hasMany']);
return $this->response($res);
Но это полезно только для одного или двух уровней, где, как я знаю, будут данные.
Если есть отношения, которые не гарантированы, мне не нужно проверять на ошибки каждое потенциальное подмножество сложной Модели.
Я просто хочу, чтобы все массивы «один-ко-многим» вводились последовательно, а не по записям PKEY.