ModelHelpers.php 994 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace App\Traits;
  3. use App\Filters\Filter;
  4. use Illuminate\Database\Eloquent\Builder;
  5. use Illuminate\Support\Facades\Log;
  6. use Illuminate\Support\Facades\Request;
  7. /**
  8. * 通用模型中的方法
  9. *
  10. * Trait ModelHelpers
  11. * @package App\Traits
  12. */
  13. trait ModelHelpers
  14. {
  15. /**
  16. * 最大每页数,避免瞎搞的人
  17. *
  18. * @var int
  19. */
  20. protected $maxPerPage = 200;
  21. public function getPerPage()
  22. {
  23. $perPage = Request::get('per_page');
  24. $intPerPage = (int) $perPage;
  25. if (($intPerPage > 0) && ((string) $intPerPage === $perPage)) {
  26. return min($intPerPage, $this->maxPerPage);
  27. } else {
  28. // return $this->perPage;
  29. return 10;
  30. }
  31. }
  32. /**
  33. * 应用过滤器
  34. *
  35. * @param Builder $builder
  36. * @param Filter $filter
  37. *
  38. * @return mixed
  39. */
  40. public function scopeFilter(Builder $builder, Filter $filter)
  41. {
  42. return $filter->apply($builder);
  43. }
  44. }