MultiWhere.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace App\Repositories\Company\Info\Criteria;
  3. use App\Repositories\Base\Criteria;
  4. use App\Repositories\Contracts\RepositoryInterface as Repository;
  5. class MultiWhere extends Criteria
  6. {
  7. private $search = [];
  8. /**
  9. * MultiWhere constructor.
  10. * @param array $search
  11. *
  12. */
  13. public function __construct(array $search)
  14. {
  15. $this->search = $search;
  16. }
  17. /**
  18. * @param $model
  19. * @param RepositoryInterface $repository
  20. * @return mixed
  21. */
  22. public function apply($model, Repository $repository)
  23. {
  24. if (isset($this->search['keyword']) && $this->search['keyword']) {
  25. $model = $model->where('id', 'like', '%' . $this->search['keyword'] . '%')
  26. ->orWhere('company_name', 'like', '%' . $this->search['keyword'] . '%')
  27. ->orWhere('reg_no', 'like', '%' . $this->search['keyword'] . '%')
  28. ->orWhere('org_no', 'like', '%' . $this->search['keyword'] . '%')
  29. ->orWhere('legal_person', 'like', '%' . $this->search['keyword'] . '%')
  30. ->orWhere('open_status', 'like', '%' . $this->search['keyword'] . '%')
  31. ->orWhere('start_date', 'like', '%' . $this->search['keyword'] . '%')
  32. ->orWhere('open_time', 'like', '%' . $this->search['keyword'] . '%')
  33. ->orWhere('annual_date', 'like', '%' . $this->search['keyword'] . '%')
  34. ->orWhere('reg_capital', 'like', '%' . $this->search['keyword'] . '%')
  35. ->orWhere('ent_type', 'like', '%' . $this->search['keyword'] . '%')
  36. ->orWhere('industry', 'like', '%' . $this->search['keyword'] . '%')
  37. ->orWhere('district', 'like', '%' . $this->search['keyword'] . '%')
  38. ->orWhere('authority', 'like', '%' . $this->search['keyword'] . '%')
  39. ->orWhere('reg_addr', 'like', '%' . $this->search['keyword'] . '%')
  40. ->orWhere('scope', 'like', '%' . $this->search['keyword'] . '%')
  41. ->orWhere('website', 'like', '%' . $this->search['keyword'] . '%');
  42. }
  43. return $model;
  44. }
  45. }