Issue
I added a custom validation errors using Validator::resolver() as bellow :
class Rest extends Validator
{
    public function addFailure($attribute, $rule, $parameters = [])
    {
        $message = $this->getMessage($attribute, $rule);
        $message = $this->makeReplacements($message, $attribute, $rule, $parameters);
        $customMessage = new MessageBag();
        $customMessage->merge(['code' => strtolower($rule.'_rule_error')]);
        $customMessage->merge(['message' => $message]);
        $this->messages->add($attribute, $customMessage);
    }
}
and i called it using resolver in AppServiceProvider:
Validator::resolver(function($translator, $data, $rules, $messages)
{
    return new Rest($translator, $data, $rules, $messages);
});
and while trying to change an attribute name it doesn't work:
$request->validate(
[
    'group_id'      => 'required'
], [], 
[
    'group_id'      => 'the lesson group'
]);
Solution
I usualy extend the validator when the provider is registering
Eg.:
Validator::extend('foo', function ($attribute, $value, $parameters, $validator) {
   return $value == 'foo';
});
Remmeber you need to return true or false.
More info: https://laravel.com/docs/6.x/validation#using-extensions
Answered By - Manuel Eduardo Romero Answer Checked By - Clifford M. (PHPFixing Volunteer)
 
 Posts
Posts
 
 
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.