Я пытаюсь сделать то, что должно быть очень простой функцией «список всех», используя Propel ORM - для чтения Backbone.js. Это то, что я хочу сделать и, на мой взгляд, должно работать:
$users = UsersQuery::create()
->find();
echo $users->toJSON();
Однако, когда я запускаю это, я получаю следующие результаты:
{"Users_0":{"Id":1,"EmailAddress":"sdf","Password":"sdf","CreatedAt":null,"ModifiedAt":null},
"Users_1":{"Id":2,"EmailAddress":"dsf","Password":"sdf","CreatedAt":null,"ModifiedAt":null}}
Хотя это действительный JSON, тот факт, что когда-либо строка является массивом в основном массиве, отбрасывает мой JSON. Мне нужно, чтобы он возвращал JSON следующим образом:
[{"Id":1,"EmailAddress":"sdf","Password":"sdf","CreatedAt":null,"ModifiedAt":null},{"Id":2,"EmailAddress":"dsf","Password":"sdf","CreatedAt":null,"ModifiedAt":null}]
Я создал приведенную ниже функцию (в качестве теста), и она отлично работает, но, конечно же, Propel (или Slim, используемая мной структура) может остановить все, что находится внутри массива? Вот хак;
$users = UsersQuery::create()
->find();
$json = '[';
foreach($users as $user){
$json = $json.$user->exportTo('JSON').',';
}
$json = $json.']';
echo str_replace("},]", "}]", $json);
Любая помощь будет принята с благодарностью! Спасибо всем.