2015-05-13 52 views
1

我們需要在響應中添加狀態碼。如何將HTTP狀態碼和狀態文本添加到使用ellipsesynergie/api-response的響應中在Laravel 5中?

public function withArray(array $array, array $headers = array()) { 
if ($this->statusCode == '200') { 
$array = array('code' => $this->statusCode , 'success' => TRUE) + $array; 
} else { 
$array = array('code' => $this->statusCode, 'success' => FALSE) + $array; 
} 
return response()->json($array, $this->statusCode, $headers); 
} 

現在,我們已經在"ellipsesynergie/api-response/src/Laravel/Response.php"修改庫代碼。

但我覺得。它不是好方法。

你能否建議我如何在不更改庫代碼的情況下將此代碼添加到所有響應中?

或者是否有任何方法來添加控制器的狀態代碼的最終響應。

實際上,我們需要最終的回覆如「http://screencast.com/t/nmWF7PYU」。

請幫助我們。

在此先感謝

回答

0

只是讓你自己Response類至極擴展EllipseSynergie\ApiResponse\Laravel\Response。我們稱之爲App\ApiResponse\MyResponse

用你自己的方法覆蓋EllipseSynergie\ApiResponse\Laravel\Response中的所有方法。 例如:

public function withArray(array $array, array $headers = array()) 
{ 
    $array['code'] = $this->statusCode; 
    $array['success'] = true; 

    return parent::withArray($array, $headers); 
} 
app\Providers\AppServiceProvider.php您註冊類像

然後:

$myResponse = new \App\ApiResponse\MyResponse(new \League\Fractal\Manager());  
$this->app->instance('EllipseSynergie\ApiResponse\Contracts\Response', $myResponse); 
相關問題