ConfigurationFilters.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace App\Filters;
  3. use Illuminate\Http\Request;
  4. class ConfigurationFilters
  5. {
  6. protected $request;
  7. protected $queryBuilder;
  8. protected $filters = [];
  9. protected $array_filter;
  10. protected $params = [
  11. 'name', 'contact_man', 'phone', 'invoice_title', 'bank', 'bank_account', 'opening_bank'
  12. ];
  13. public function __construct(Request $request)
  14. {
  15. $this->request = $request;
  16. }
  17. public function apply($builder)
  18. {
  19. $this->queryBuilder = $builder;
  20. $filters = array_filter($this->request->only($this->filters));
  21. foreach ($filters as $filter => $value) {
  22. if (method_exists($this, $filter)) {
  23. $this->$filter($value, $this->queryBuilder);
  24. }
  25. }
  26. $this->afterApply();
  27. return $this->queryBuilder;
  28. }
  29. private function afterApply()
  30. {
  31. }
  32. private function name($name)
  33. {
  34. }
  35. private function contact_man($contact_man)
  36. {
  37. }
  38. private function phone($phone)
  39. {
  40. }
  41. private function invoice_title($invoice_title)
  42. {
  43. }
  44. private function opening_bank($opening_bank)
  45. {
  46. }
  47. private function bank($bank)
  48. {
  49. }
  50. }