# 扩展查询规则 [TOC] ## 定义 扩展查询规则是为 repository 模式中添加扩展查询选项,比如设置查询的记录条数等。 在 system/repository/rule/user 目录中定义查询规则类文件如下: ``` namespace system\repository\rule\user; use houdunwang\model\repository\Repository; use houdunwang\model\repository\Rule; class UserLimitRule extends Rule { protected $limit; public function __construct($limit = 10) { $this->limit = $limit; } public function apply($model, Repository $repository) { return $model->limit($this->limit); } } ``` ## 默认方法 #### 重新使用规则 ``` public function resetRule(); ``` #### 不执行任何规则 ``` public function skipRule($status = true); ``` #### 获取所有规则 ``` public function getRule(); ``` #### 获取指定的规则 ``` public function getByRule(Rule $Rule); ``` #### 添加规则 ``` public function pushRule(Rule $Rule); ``` #### 使用集合中的所有规则 ``` public function applyRule(); ``` ## 控制器中使用 ``` $userRepository->pushRule(new UserLimitRule())->all(); ```