CategoryPagesCriteria.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. /**
  3. * 标签查询.
  4. *
  5. * @author jim <jim458734573@gmail.com>
  6. * @date 2020-01-27 19:24:35
  7. */
  8. declare(strict_types=1);
  9. namespace App\Repositories\Criterias;
  10. use Hyperf\Database\Query\Builder;
  11. use KZ2\Repositories\Contracts\RepositoryInterface;
  12. use KZ2\Repositories\Criteria\Criteria;
  13. class CategoryPagesCriteria extends Criteria
  14. {
  15. private $params = [];
  16. public function __construct($params = [])
  17. {
  18. $this->params = $params;
  19. }
  20. /**
  21. * @param Builder $model
  22. * @param RepositoryInterface $repository
  23. * @return mixed|void
  24. */
  25. public function apply(
  26. $model,
  27. RepositoryInterface $repository
  28. ) {
  29. if (!empty($this->params['id'])) {
  30. $model = $model->where('id', $this->params['id']);
  31. }
  32. if (!empty($this->params['name'])) {
  33. $model = $model->where('name', 'like', '%'. $this->params['name'] . '%');
  34. }
  35. if (!empty($this->params['alias_name'])) {
  36. $model = $model->where('alias_name', 'like', '%'. $this->params['alias_name'] . '%');
  37. }
  38. if (!empty($this->params['position'])) {
  39. $model = $model->where('position', $this->params['position']);
  40. }
  41. return $model;
  42. }
  43. }