2016-05-02 56 views
0

我正在Symfony網站上工作。基本上,我有兩個函數,同時返回JsonResponse:獲取被調用函數的JsonResponse

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

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

我的問題是:如何才能myFirstFunction()返回由mySecondFunction返回JsonResponse()?

+0

只是返回第二個函數。 'return mySecondFunction();' – Junaid

+0

@Junaid在這種情況下不起作用。 – Marcus

+0

如果答案已解決您的問題,請考慮通過點擊複選標記來接受答案。這向更廣泛的社區表明,您已經找到了解決方案,併爲答覆者和您自己提供了一些聲譽。如果沒有,請告訴我們,我們是否可以進一步幫助您。謝謝! –

回答

0

只需return它與$this->因爲您在當前object內調用method。返回方法程序風格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())從控制器到一個外部類。這有助於保持你的控制器苗條和你的業務邏輯更多的框架不可知論(這是一個很好的實踐恕我直言)。