AppPagesCriteria.php 858 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Repositories\Criterias;
  3. use Illuminate\Database\Eloquent\Builder;
  4. use KZ2\Laravel\Repositories\Contracts\RepositoryInterface;
  5. use KZ2\Laravel\Repositories\Criteria\Criteria;
  6. class AppPagesCriteria extends Criteria
  7. {
  8. private $params = [];
  9. public function __construct($params = [])
  10. {
  11. $this->params = $params;
  12. }
  13. /**
  14. * @param Builder $model
  15. * @param RepositoryInterface $repository
  16. * @return mixed|void
  17. */
  18. public function apply(
  19. $model,
  20. RepositoryInterface $repository
  21. ) {
  22. if (!empty($this->params['name'])) {
  23. $model = $model->where('name', 'LIKE', '%'.$this->params['name'].'%');
  24. }
  25. if (!empty($this->params['uid'])) {
  26. $model = $model->where('uid', $this->params['uid']);
  27. }
  28. return $model;
  29. }
  30. }