PHP code example of devaction-labs / filterable-package

1. Go to this page and download the library: Download devaction-labs/filterable-package library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

devaction-labs / filterable-package example snippets


namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use DevactionLabs\FilterablePackage\Traits\Filterable;

class Expense extends Model
{
    use Filterable;

    // Define any custom filter map or allowed sorts if necessary
    protected array $filterMap = [
        'name' => 'user_name', // Example: map 'name' request parameter to 'user_name' column
    ];

    protected array $allowedSorts = ['expense_date', 'amount']; // Example: allow sorting by these columns
}

namespace App\Http\Controllers\Api\Finance;

use App\Http\Controllers\Controller;
use App\Http\Resources\ExpenseCollection;
use App\Models\Expense;
use DevactionLabs\FilterablePackage\Filter;

class ExpenseController extends Controller
{
    public function index(): ExpenseCollection
    {
        $expenses = Expense::query()
            ->with(['category', 'period'])
            ->filtrable([
                Filter::like('description', 'description'),
                Filter::exact('expense_date', 'expense_date'),
            ])
            ->orderBy('expense_date', 'desc')
            ->get();

        return new ExpenseCollection($expenses);
    }
}

protected array $filterMap = [
    'search' => 'description',
    'date' => 'expense_date',
];

public function index(): ExpenseCollection
{
    $expenses = Expense::query()
        ->with(['category', 'period'])
        ->filtrable([
            Filter::like('description', 'description'),
            Filter::exact('expense_date', 'expense_date'),
        ])
        ->orderBy('expense_date', 'desc')
        ->get();

    return new ExpenseCollection($expenses);
}