ShareUrlsPagesCriteria.php 884 B

12345678910111213141516171819202122232425262728293031323334353637383940
  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 ShareUrlsPagesCriteria 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. {
  23. if (!empty($this->params['title'])) {
  24. $model = $model->where('title', 'LIKE', '%' . $this->params['title'] . '%');
  25. }
  26. if (!empty($this->params['status'])) {
  27. $model = $model->where('status', $this->params['status']);
  28. }
  29. return $model;
  30. }
  31. }