<?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
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.