2

Backbone.js が読み取れるように、Propel ORM を使用して非常に単純な「すべてを一覧表示」する関数を作成しようとしています。これは私がやりたいことであり、私の意見ではうまくいくはずです:

$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);

どんな助けでも大歓迎です!皆さんありがとう。

4

3 に答える 3

0

これと選択フィルターを 1 つのステートメントで使用する解決策はありますか。このようなもの:

   $ojson = TblproductQuery::create()
        ->select(array('ProdtID', 'DivnID'))
        ->toJsonArray();
于 2013-06-26T07:23:38.143 に答える