public function addError(Cake $cake, $rule, $item, $arguments) { if (!array_key_exists($rule['name'], $this->messages)) { return; } //get values for the rule replacement $ruleName = $rule['name']; $field = is_null($item['alias']) ? $item['name'] : $item['alias']; $value = $item['value']; $arguments = count($arguments) > 1 ? join(', ', $arguments) : $arguments; if (!is_array($arguments) && array_key_exists($arguments, $cake->getItems())) { $arguments = $cake->getItems()[$arguments]['alias']; } $message = $this->messages[$rule['name']]; $message = str_replace(['{rule}', '{field}', '{value}', '{arguments}'], [$ruleName, $field, $item['value'], count($arguments) > 1 ? join(', ', $arguments) : $arguments], $message); $this->errors[$item['name']][] = $message; }