* @date 2020-01-27 19:24:35 */ declare(strict_types=1); namespace App\Repositories\Criterias; use Hyperf\Database\Query\Builder; use KZ2\Repositories\Contracts\RepositoryInterface; use KZ2\Repositories\Criteria\Criteria; class CategoryPagesCriteria extends Criteria { private $params = []; public function __construct($params = []) { $this->params = $params; } /** * @param Builder $model * @param RepositoryInterface $repository * @return mixed|void */ public function apply( $model, RepositoryInterface $repository ) { if (!empty($this->params['id'])) { $model = $model->where('id', $this->params['id']); } if (!empty($this->params['name'])) { $model = $model->where('name', 'like', '%'. $this->params['name'] . '%'); } if (!empty($this->params['alias_name'])) { $model = $model->where('alias_name', 'like', '%'. $this->params['alias_name'] . '%'); } if (!empty($this->params['position'])) { $model = $model->where('position', $this->params['position']); } return $model; } }