UserLastCertifyFilter.php 1.01 KB
<?php

namespace App\ModelFilters;

use App\Support\ModelFilter;
use Arr;
use Illuminate\Database\Eloquent\Builder;

class UserLastCertifyFilter extends ModelFilter
{
    /**
     * @param int $sex
     * @return void
     */
    public function sex(int $sex): void
    {
        $this->whereHas('user', fn(Builder $builder) => $builder->where('sex', $sex));
    }

    /**
     * @param string $name
     * @return void
     */
    public function nickName(string $name): void
    {
        $this->whereHas('user', fn(Builder $builder) => $builder->where('nick_name', 'like', '%' . $name . '%'));
    }

    /**
     * @param string $name
     * @return void
     */
    public function realName(string $name): void
    {
        $this->whereHas('user', fn(Builder $builder) => $builder->where('real_name', 'like', '%' . $name . '%'));
    }


    /**
     * @param array|int $status
     * @return void
     */
    public function status(array|int $status): void
    {
        $this->whereIn('status', Arr::wrap($status));
    }
}