Files
2026-07-15 17:23:15 +07:00

33 lines
754 B
PHP

<?php
namespace App\Filters;
use Illuminate\Http\Request;
class ApiFilter {
protected $safeParms = [];
protected $columnMap = [];
protected $operatorMap = [];
public function transform(Request $request) {
$eloQuery = [];
foreach ($this->safeParms as $parm => $operators) {
$query = $request->query($parm);
if (!isset($query)) {
continue;
}
$column = $this->columnMap[$parm] ?? $parm;
foreach ($operators as $operator) {
if(isset($query[$operator])) {
$eloQuery[] = [$column, $this->operatorMap[$operator], $query[$operator]];
}
}
}
return $eloQuery;
}
}