1. Go to this page and download the library: Download aginev/search-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/ */
aginev / search-filters example snippets
use Aginev\SearchFilters\Filterable;
/**
* Set query filters
*
* Overwrite this method in the model to set query filters
*/
public function setFilters()
{
$this->filter->equal('id', function ($by, $dir, $query) {
// Every filter can recieve as last paramenter a closure that can be used for custom query order if
public function setFilters()
{
$this->filter->equal('id')
->custom('full_name', function ($query, $key, $value) {
$query->where(\DB::raw("CONCAT_WS(' ', first_name, middle_name, last_name)"), 'LIKE', '%' . $value . '%');
}, function ($by, $dir, $query) {
// Define custom order or skip this parameter in method call
$query->orderBy($by, $dir);
});
}
public function setFilters()
{
$this->filter
->custom('column', function($query, $column, $value) {
// $query - instance of Illuminate\Database\Eloquent\Builder
// $column - the string passed as first argument
// $value - the filter value if exists and not empty
}, function ($by, $dir, $query) {
// Not >greaterOrEqualThan('column') // column >= filter_value
->lessThan('column') // column < filter_value
->lessOrEqualThan('column') // column <= filter_value
->like('column') // column LIKE '%filter_value%'
->llike('column') // column LIKE '%filter_value'
->rlike('column') // column LIKE 'filter_value%'
->between('column') // column BETWEEN filter_value[0] AND filter_value[1]
->notBetween('column') // column NOT BETWEEN filter_value[0] AND filter_value[1]
->in('column') // column IN (filter_value[0], ..., filter_value[N])
->notIn('column') // column NOT IN (filter_value[0], ..., filter_value[N])
->null('column') // column IS NULL
->notNull('column') // column IS NOT NULL
->date('column') // column DATE(column) = filter_value
->dateBetween('column'); // column DATE(column) BETWEEN filter_value[0] AND filter_value[1]
}
sh
php artisan vendor:publish --provider="Aginev\SearchFilters\SearchFiltersServiceProvider" --tag="config"
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.