Как добавить код статуса 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».

Пожалуйста, помогите нам в этом.

заранее спасибо

1

Решение

Просто сделай свой собственный 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);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]