Giter VIP home page Giter VIP logo

laravel-eagle-search's Introduction

Laravel Eagle Search

what is Laravel Eagle Search ๐Ÿค” . eagle search library help you to filters your data and order your data easily

How to install it

composer require devazizi/laravel-eagle-search

add EagleSearchTrait to your models

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use LaravelEagleSearch\EagleSearchTrait;

class Account extends Model
{
    use HasFactory, EagleSearchTrait;

    public $searchable = [
        'balance' => 'balance',
        'card_no' => 'creditCards.credit_card_number'
    ];

    protected $fillable = ['user_id', 'balance', 'account_number'];

    public function creditCards()
    {
        return $this->hasMany(CreditCard::class);
    }
}

know your model prepared to filter data you most add setFilters method into in your query

return \App\Models\Account::query()->setFilters()->get();

know how i can filter response data?

http://example.local:8000/api/accounts?filters[balance]=&|in<:>955300,2121500

for orders columns. How you can this ๐Ÿ˜‰, add EagleOrderTrait trait in your models

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use LaravelEagleSearch\EagleOrderTrait;
use LaravelEagleSearch\EagleSearchTrait;

class Account extends Model
{
    use HasFactory, EagleSearchTrait, EagleOrderTrait;

    public $searchable = [
        'balance' => 'balance',
        'card_no' => 'creditCards.credit_card_number'
    ];

    public $orderable = [
        'balance',
        'id'
    ];

    protected $fillable = ['user_id', 'balance', 'account_number'];

    public function creditCards()
    {
        return $this->hasMany(CreditCard::class);
    }
}

after adding EagleOrderTrait in your model you can use setOrders methods in your queries

return \App\Models\Account::query()->setFilters()->setOrders()->get();

add your required fields for sorting as query string

http://example.local:8000/api/search?orders[id]=desc&orders[balance]=asc

table of searching facilities

in sql eagle search description
= eq
!= !eq
in in
not in !in
between btw
not between !btw
is null nil
is not null !nil
gte greater or equal than
gt greater than
lte less or equal than
lt less than

laravel-eagle-search's People

Contributors

devazizi avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.