PHP code example of alkhachatryan / laravel-enhanced-filters

1. Go to this page and download the library: Download alkhachatryan/laravel-enhanced-filters 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/ */

    

alkhachatryan / laravel-enhanced-filters example snippets



use Alkhachatryan\LaravelEnhancedFilters\HasEnhancedFilters;
use Alkhachatryan\LaravelEnhancedFilters\Traits\EnhancedFilters;
use Alkhachatryan\LaravelEnhancedFilters\FieldTypes\{
    BooleanFieldType,
    DateFieldType,
    NumericFieldType,
    StringFieldType
};

class ListBlogPostsRequest extends FormRequest implements HasEnhancedFilters
{
    use EnhancedFilters;

    public function rules(): array
    {
        return [
            // your basic rules
            'enhancedFilters' => [new EnhancedFilterRule($this->enhancedFilters())],
        ];
    }

    public function enhancedFilters(): array
    {
        return [
            'title' => new StringFieldType(['nullable', 'max:255']),
            'body' => new StringFieldType(['nullable', 'max:5000']),
            'author_id' => new NumericFieldType(['nullable', 'int'),
            'rating' => new NumericFieldType(['nullable', 'float']),
            'is_active' => new BooleanFieldType(['nullable']),
            'created_at' => new DateFieldType(['nullable']),
        ];
    }
}

        use Alkhachatryan\LaravelEnhancedFilters\QueryBuilderEnhancedFilter;

        // Later in the method
        $queryBuilderEnhancedFilter = app(QueryBuilderEnhancedFilter::class);
        $enhancedFilters = $request->enhancedFiltersWithValues();
        $query = BlogPost::query();

        // Your specific querying
        
        $queryBuilderEnhancedFilter->filter($query, $enhancedFilters);

        // Your ordering staff

        return $query->get(); // or whatever