1

我们需要在响应中添加状态码。

喜欢

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 ”这样的最终响应。

请帮助我们。

提前致谢

4

1 回答 1

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);
于 2015-05-13T15:45:09.350 回答