Вы не можете просто перезаписать его пользовательскими сообщениями запроса.Если вы посмотрите на класс Validator
:
/**
* Validate an attribute using a custom rule object.
*
* @param string $attribute
* @param mixed $value
* @param \Illuminate\Contracts\Validation\Rule $rule
* @return void
*/
protected function validateUsingCustomRule($attribute, $value, $rule)
{
if (! $rule->passes($attribute, $value)) {
$this->failedRules[$attribute][get_class($rule)] = [];
$this->messages->add($attribute, $this->makeReplacements(
$rule->message(), $attribute, get_class($rule), []
));
}
}
Как видите, это просто добавление $rule->message()
непосредственно в пакет сообщений.
Однако вы можете добавитьпараметр для сообщения в классе вашего пользовательского правила:
public function __construct(string $message = null)
{
$this->message = $message;
}
Затем в вашей функции сообщения:
public function message()
{
return $this->message ?: 'Default message';
}
И, наконец, в ваших правилах:
'age' => ['required', new OverAge('Overwritten message')];