2016-05-02 18 views
0

私はSymfonyのWebサイトで作業しています。呼び出された関数のJsonResponseを取得する

public function myFirstFunction() { 
    mySecondFunction(); 
    return new JsonResponse(JsonResponse of mySecondFunction() ????); 
} 

public function mySecondFunction() { 
    return new JsonResponse(array("result" => "ok", "sent" => "yes)); 
} 

私の質問は次のとおりです:基本的に私はJsonResponse両方を返すことの二つの機能を持ってどのようにすることができますmyFirstFunction()mySecondFunctionによって返さJsonResponseを返しますか()?

+0

ただ2つ目の機能を返します。 'return mySecondFunction();' – Junaid

+0

@Junaidこの場合は動作しません。 – Marcus

+0

回答があなたの質問を解決した場合は、チェックマークをクリックして回答を受け入れることを検討してください。これは、あなたが解決策を見つけ出し、回答者とあなた自身の両方に評判を与えていることを広範なコミュニティに示します。そうでない場合は、さらにお手伝いできるかどうかお知らせください。ありがとう! –

答えて

0

objectの中でmethodと呼んでいるため、return$this->との間で一致します。メソッド手続きスタイルreturn mySecondFunction();を返すことはできません。

public function myFirstFunction() { 
    return $this->mySecondFunction(); 
    // return new JsonResponse(JsonResponse of mySecondFunction() ????); 
} 

public function mySecondFunction() { 
    return new JsonResponse(array("result" => "ok", "sent" => "yes")); 
} 
0

あなたは直接mySecondFunctionを呼び出すことができます。

public function myFirstFunction() { 
    return $this->mySecondFunction(); 
} 

しかし、多分それは、データを作成し、新しい(プライベート)メソッドを作成するために、良いアイデアです。それはあなたのコード DRYを維持するのに役立ちます:

private function getData() 
{ 
    return array("result" => "ok", "sent" => "yes"); 
} 

public function myFirstFunction() { 
    return new JsonResponse($this->getData()); 
} 

public function mySecondFunction() { 
    return new JsonResponse($this->getData()); 
} 

これはあなたのために働く場合、あなたは簡単に外部のクラスにあなたのコントローラから(この場合getData()で)あなたのビジネスロジックを移動することができます。これは、コントローラをスリムに保ち、ビジネスロジックをよりフレームワークにとらわれないようにするのに役立ちます(IMHOは良い方法です)。

関連する問題