nekoos / laravel-generic-resource
Installs: 1 592
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 2
Requires
- ext-json: *
- illuminate/container: ^5.8
- illuminate/http: ^5.8
- illuminate/support: ^5.8
- symfony/http-foundation: ~4.3
This package is auto-updated.
Last update: 2025-01-30 02:19:57 UTC
README
see documentation API Resources
Introduction
When building an API, you may need a transformation. This resource classes allow you easily transform your models and collections or maintain Laravel's JSON Resource.
Install
composer require nekoos/laravel-generic-resource
Example
namespace App\Http\Resources; use App\Export\UserExcelExport; use App\Export\UserPdfExport; use NekoOs\Illuminate\Http\Resources\GenericResource; class UserGenericResource extends GenericResource { public function toArray($request) { $isEmbedRoles = $request->has('embed-roles'); return [ 'id' => $this->id, 'name' => $this->name, 'roles' => $this->when($isEmbedRoles, function () { return $this->roles; }) ]; } public function doResponse($resource,$request) { $format = $request->header('x-format'); if ($format == 'pdf') { $response = new UserPdfExport($resource); } elseif ($format == 'xls') { $response = new UserExcelExport($resource); } else { // Response Json $response = parent::doResponse($resource, $request); } return $response; } }
namespace App\Http\Controllers; use App\Http\Resources\UserGenericResource; use App\User; class UserController extends Controller { public function index() { return UserGenericResource::collection(User::all()); } }