LaravelPackages.net
Acme Inc.
Toggle sidebar
lexxsoft/odata

Laravel OData request parser

74
4
2.0.1
About lexxsoft/odata

lexxsoft/odata is a Laravel package for laravel odata request parser. It currently has 4 GitHub stars and 74 downloads on Packagist (latest version 2.0.1). Install it with composer require lexxsoft/odata. Discover more Laravel packages by lexxsoft or browse all Laravel packages to compare alternatives.

Last updated

Laravel OData REST

Latest Stable Version GitHub Package validation status PHP Version Require License Total Downloads

Contents

Installation

Requirements

| Component | Version | |-----------|--------| | PHP | 8.1 | | Laravel | 13 |

Setup

composer require lexxsoft/odata

Controller example

...
use Lexxsoft\Odata\RequestQuery;
...

public function index(Request $request): AnonymousResourceCollection
    {
        $requestQuery = RequestQuery::make();
        $perPage = $requestQuery->limit > 0 ? $requestQuery->limit : 10;
        $builder = $requestQuery->noLimit()->builder(App::make(Document::class));
        if (!$requestQuery->hasOrder()) {
            $builder = $builder->orderBy('created_at', 'desc');
        }
        if ($requestQuery->search !== '') {
            $builder = $builder->where('name', 'like', '%' . $requestQuery->search . '%');
        }
        if (isset($request->period)) {
            $startFrom = now()->subtract($request->period . ' days');
            $builder = $builder->where('created_at', '>=', $startFrom->format('Y-m-d'));
        }
        $docs = $builder->where('created_by', Auth::id())
            ->paginate($perPage)
            ->withQueryString();

        return DocumentResource::collection($docs);
    }
Comments