1. Go to this page and download the library: Download sfneal/datum 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/ */
sfneal / datum example snippets
php
use Illuminate\Database\Eloquent\Builder;
use Sfneal\Filters\Filter;
class NameLastFilter implements Filter
{
/**
* Apply a given search value to the builder instance.
*
* @param Builder $query
* @param mixed $value
* @return Builder $query
*/
public function apply(Builder $query, $value): Builder
{
$query->whereIn('name_last', (array) $value);
return $query;
}
}
class CityFilter implements Filter
{
/**
* Apply a given search value to the builder instance.
*
* @param Builder $query
* @param mixed $value
* @return Builder $query
*/
public function apply(Builder $query, $value): Builder
{
$query->whereIn('city', (array) $value);
return $query;
}
}
php
use CityFilter;
use NameLastFilter;
use Sfneal\Queries\FilterableQuery;
class PeopleFilterableQuery extends FilterableQuery
{
/**
* Retrieve a Query builder.
*
* @return Builder
*/
protected function builder(): Builder
{
return People::query();
}
/**
* Retrieve an array of model attribute keys & corresponding Filter class values.
*
* @return array
*/
protected function queryFilters(): array
{
return [
'city' => CityFilter::class,
'name_last' => NameLastFilter::class,
];
}
}