2011-02-10 14 views
2

PHP + CURLを使用して、自分のアクションの1つでサーバーからデータを取得しています。私は自分の行動からjsonとしてデータを返します。jsonレスポンスを使用したsymfonyのアクション

マイアクションこの

public function executeTest(sfWebRequest $request) 
{ 
    $json = $this->getServerResponse(); // fetches data using CURL 
    $this->getResponse()->setContentType('text/json'); 
    return $this->renderText($json); 
} 

上記アクションが実行されると、受信したJSON STRNGは、(例えば)であるように見える。

{ 'OK':真} 1

上記のアクションの最後の行を に変更すると、$ this-> renderText( 'foo');が返されます。

返されるJSONは次のとおりです。

{ 'OK':真} fooの

私は リターンます$ this-> renderText( '' に上記のアクションで最後の行を変更した場合);

返されるJSONは次のとおりです。

{ 'OK':真}

私の質問は以下のとおりです。

  1. がなぜサーバからのJSONデータが一緒に表示されています私のrenderText()メソッドのテキストは?

  2. ここで、JSONデータに「1」が追加されていますか?

  3. この問題を解決するにはどうすればよいですか?

私はあなたの問題がgetServerResponse()にある、その様子から、Ubuntuの

+0

私は専門家ではありませんが、renderTextは渡された値を既存のレスポンスコンテンツに追加するのではなく、置き換えずにsfResponseの既存のコンテンツにすでに存在しているかのように見えますそれに$ jsonを追加して、$ jsonはあなたが期待するものではありません。私たちはgetServerResponse()が何が起こっているのかを理解するためのソースを見る必要があるかもしれません... –

+0

@Matt - 私はあなたが正しい道にいると思います。 'getServerResponse'関数が応答テキストを設定してからtrueを返すように見えます。これは '1 'が付加されていること(真を1と表示する)、文字列fooと空の文字列を説明します。すべてが追加されています。 @OP - 応答を設定してからtrueを返すのではなく、 'getServerResponse'を返すべきです。 –

+0

@Blairはい、意味があります。 –

答えて

2

にsymfonyの1.4.xのを実行しています。その機能を見ずにもっと助けることはできません。

+0

はい、実際には - あなたが正しいです。 curl_exec(1)の戻りコードを返します。 – rodriguez

関連する問題