CommonLimitCriteria.php 736 B

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. namespace App\Repositories\Criterias;
  3. use KZ2\Repositories\Contracts\RepositoryInterface;
  4. use KZ2\Repositories\Criteria\Criteria;
  5. class CommonLimitCriteria extends Criteria
  6. {
  7. private $order = [];
  8. private $limit = 0;
  9. public function __construct($order = [], $limit = 0)
  10. {
  11. $this->order = $order;
  12. $this->limit = $limit;
  13. }
  14. public function apply($model, RepositoryInterface $repository)
  15. {
  16. if (!empty($this->order)) {
  17. foreach ($this->order as $item) {
  18. $model = $model->orderBy($item[0], $item[1]);
  19. }
  20. }
  21. if (!empty($this->limit)) {
  22. $model = $model->take($this->limit);
  23. }
  24. return $model;
  25. }
  26. }