1 | <?php |
||
10 | class QueryParamBag |
||
11 | { |
||
12 | private $params = []; |
||
13 | |||
14 | public function __construct(Request $request, string $field) |
||
15 | { |
||
16 | if ($request->filled($field)) { |
||
17 | $this->prepareParams($request->get($field)); |
||
18 | } |
||
19 | } |
||
20 | |||
21 | public function has($field): bool |
||
22 | { |
||
23 | return Arr::has($this->params, $field); |
||
24 | } |
||
25 | |||
26 | public function keys(): array |
||
27 | { |
||
28 | return array_keys($this->params); |
||
29 | } |
||
30 | |||
31 | public function get($field, $default = null) |
||
32 | { |
||
33 | return Arr::get($this->params, $field, $default); |
||
34 | } |
||
35 | |||
36 | public function isEmpty($field) |
||
40 | |||
41 | public function each($callback) |
||
42 | { |
||
43 | collect($this->params)->each($callback); |
||
44 | } |
||
45 | |||
46 | private function prepareParams($value): void |
||
54 | |||
55 | private function prepareStringBasedParams($value): void |
||
64 | |||
65 | private function prepareStringBasedNestedParams(array $params): array |
||
73 | |||
74 | private function prepareArrayBasedParams($value): void |
||
88 | |||
89 | private function prepareArrayBasedNestedParams(array $params): array |
||
95 | } |
||
96 |