hasandotprayoga / format-response
There is no license information available for the latest version (v1.2.4) of this package.
Laravel Format Response
v1.2.4
2019-02-28 04:43 UTC
This package is auto-updated.
Last update: 2025-04-29 01:00:32 UTC
README
Installation
Add to composer.json
"require": {
...
"hasandotprayoga/format-response": "*"
}
On your terminal, run composer update
Configuration
-
Open
app\Http\Controllers\Controller.php
, add one line like this:class Controller extends BaseController { use \FormatResponse\FormatResponse; // add this line }
-
Open
app\Exceptions\Handler.php
, edit method render like this:public function render($request, Exception $exception) { if($exception instanceof ValidationException) { return parent::render($request, $exception); } $rendered = parent::render($request, $exception); $error = [ 'error'=>$exception->getMessage(), 'file'=>$exception->getFile(), 'line'=>$exception->getLine() ]; $controller = app('\App\Http\Controllers\Controller'); $controller->responseCode = $rendered->getStatusCode(); $controller->messages = $error; return $controller->response(); }
How to use
Change your return response to $this->response();
$this->response($results, $resCode, $messages, $metaData, $request);
/*
@param $results default []
@param $resCode default 200
@param $messages default ''
@param $metaData default []
@param $request default []
*/
Example
return $this->response([1,2,4], 200, 'ok', [
'selectedPage' => 1,
'selectedItem' => NULL,
'totalPage' => 2,
'totalItem' => 5,
'totalItemPerPage' => 5
], [
'get'=>[
'field1'=>1,
'field2'=>2
],
'post'=>[]
]);
// Or
$this->results = [1,2,4];
$this->resCode = 200;
$this->messages = 'Ok';
$this->metaData = [
'selectedPage' => 1,
'selectedItem' => NULL,
'totalPage' => 2,
'totalItem' => 5,
'totalItemPerPage' => 5
];
$this->request = [
'get'=>[
'field1'=>1,
'field2'=>2
],
'post'=>[]
];
return $this->response();
Example Response
{ "code": 200, "description": "Ok", "response": { "results": [ { "id": 1, "balance": 100000, "recStatus": "DELETE", "recTimeCreate": "2019-01-16 17:10:01", "recTimeUpdate": "2019-01-29 04:39:22" }, { "id": 2, "balance": null, "recStatus": "PUBLISH", "recTimeCreate": "2018-04-12 23:36:03", "recTimeUpdate": null }, { "id": 3, "balance": null, "recStatus": "PUBLISH", "recTimeCreate": "2018-04-12 23:10:03", "recTimeUpdate": null }, ], "messages": "ok", "metaData": { "selectedPage": 1, "selectedItem": null, "totalPage": 1, "totalItem": 3, "totalItemPerPage": 3 } }, "request": { "get": { "id": "1" } }, }