Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vskut/laravel-api-resource-filterable
Filterable methods (only/except) for laravel Api Resources (eloquent-resources)
https://github.com/vskut/laravel-api-resource-filterable
api-resources eloquent-resources filterable laravel laravel-framework laravel5 php php7
Last synced: 1 day ago
JSON representation
Filterable methods (only/except) for laravel Api Resources (eloquent-resources)
- Host: GitHub
- URL: https://github.com/vskut/laravel-api-resource-filterable
- Owner: VSKut
- Created: 2019-06-16T11:26:21.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-06-16T11:47:13.000Z (over 5 years ago)
- Last Synced: 2024-09-25T21:02:06.774Z (1 day ago)
- Topics: api-resources, eloquent-resources, filterable, laravel, laravel-framework, laravel5, php, php7
- Language: PHP
- Homepage:
- Size: 2.93 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Laravel Api Resource filterable
Provides the filtering trait for Laravel 5 Api Resources.
## Install
Via composer:
`$ composer require vskut/laravel-api-resource-filterable`
## Usage
### Resource
```php
namespace App\Http\Resources;use vskut\laravel-api-resource-filterable\Filterable;
use Illuminate\Http\Resources\Json\JsonResource;class UserResource extends JsonResource
{
use Filtratable;public function toArray($request)
{
return $this->filtrateFields([
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
]);
}
}
```### Collection
```php
namespace App\Http\Resources;use vskut\laravel-api-resource-filterable\Filterable;
use Illuminate\Http\Resources\Json\ResourceCollection;class UserResourceCollection extends ResourceCollection
{
use Filtratable;public function toArray($request)
{
return [
'data' => $this->processCollection($request),
];
}
}
```### Controller
```php
namespace App\Http\Controllers;use App\Http\Controllers\Controller;
use App\Http\Resources\UserResource;
use App\User;class UserController extends Controller
{public function index()
{
$users = User::all();
return UserCollection::make($users)->only(['id', 'name', 'email']);
//return UserCollection::make($users)->except(['email']);
}public function show(User $user)
{
return UserResource::make($user)->only(['id', 'name', 'email']);
// return UserResource::make($user)->except(['email']);
}
}
```## Credits
* [Markus Lind](https://github.com/vskut)
* [All Contributors](https://github.com/vskut/laravel-api-resource-filterable/contributors)## License
The MIT License (MIT).