2015-05-13 5 views
1

Нам нужно добавить код состояния в ответ.Как добавить код состояния HTTP и текст статуса в ответ с помощью эллипсесергинга/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); 

 Смежные вопросы

  • Нет связанных вопросов^_^