table = $table; // 当前的集合表 $this->siteAliasName = $siteAliasName; // 站点别名 $this->params = (isset($ruleValue['params']) && !empty($ruleValue['params'])) ? $ruleValue['params'] : ''; $this->message = (isset($ruleValue['error_msg']) && !empty($ruleValue['error_msg'])) ? $ruleValue['error_msg'] : ''; } /** * Determine if the validation rule passes. * * @param $attribute * @param mixed $value * @return bool */ public function passes($attribute, $value): bool { $this->attribute = $attribute; $this->value = $value; $find = ES::table($this->table) ->where('is_delete', 0) ->where([$attribute => $value]); if ($this->ignoreId) { $find->mustNot(function ($query) { $query->where('id', $this->ignoreId); }); } return $find->count() ? false : true; } /** * 编辑的时候,过滤掉当前的id * * @param $id * @return $this */ public function ignore($id): EsUniqueRule { $this->ignoreId = $id; return $this; } /** * Get the validation error message. * * @return string */ public function message() { return $this->message ? $this->message : '该值 :attribute 已经存在!'; } }