36 lines
897 B
PHP
36 lines
897 B
PHP
<?php
|
|
|
|
namespace App\ModelFilters;
|
|
|
|
use Carbon\Carbon;
|
|
use EloquentFilter\ModelFilter;
|
|
|
|
class UserFilter extends ModelFilter
|
|
{
|
|
/**
|
|
* Related Models that have ModelFilters as well as the method on the ModelFilter
|
|
* As [relationMethod => [input_key1, input_key2]].
|
|
*
|
|
* @var array
|
|
*/
|
|
public $relations = [];
|
|
|
|
public function search($key)
|
|
{
|
|
$str = '%'.$key.'%';
|
|
return $this->where(fn($q) => $q->where('phone', 'like', $str)->orWhere('name', 'like', $str));
|
|
}
|
|
|
|
public function createdRange($key)
|
|
{
|
|
$keys = explode(',', $key);
|
|
$start = data_get($keys, 0);
|
|
$end = data_get($keys, 1);
|
|
if ($start && $end) {
|
|
$start = Carbon::createFromTimestamp($start);
|
|
$end = Carbon::createFromTimestamp($end);
|
|
return $this->whereBetween('created_at', [$start, $end]);
|
|
}
|
|
}
|
|
}
|