Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Filters;
- use Mi\Core\Filters\BaseFilter;
- class Status extends BaseFilter
- {
- /**
- * Apply the filter
- *
- * @param \Illuminate\Database\Eloquent\Model $model
- * @param mixed $input
- * @return mixed
- */
- public static function apply($model, $input)
- {
- $crits = explode(',', $input);
- if (count($crits) == 0) {
- return $model;
- }
- return $model->where(function ($query) use ($crits) {
- foreach ($crits as $value) {
- $query = $this->applyFilter($query, $value);
- }
- return $query;
- });
- }
- private function applyFilter($query, $input)
- {
- switch($input) {
- case 'paid':
- return $query->orWhereNotNull('paid_at');
- case 'unpaid':
- return $query->orWhereNull('paid_at');
- case 'canceled':
- return $query->orWhereNotNull('canceled_at');
- default:
- return $query;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement