Laravel добавить сообщение об ошибке в валидатор в запросе пользовательской формы - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть запрос пользовательской формы, в котором я делаю некоторые дополнительные логи проверки c, и я хочу добавить ошибку, если моя логи c не удается, но я получаю эту ошибку:

Вызов ошибки функции-члена () в null

Вот мой пользовательский запрос:

if (!empty($this->get('new_password')) && !empty($this->get('current_password'))) {
    if (
        !Auth::attempt([
            'email' => $this->get('email'),
            'password' => $this->get('current_password'),
            'status' => 'pending'
        ])
    ) {
        $this->validator->errors()->add('current_password', 'Something is wrong with this field!');
    }
}

return [                    
    'first_name' => 'required|min:1|max:190',        
];

РЕДАКТИРОВАТЬ полный класс

class ProfileRequest extends FormRequest
{
    public function authorize()
    {
        return Auth::check();
    }

    public function rules()
    {
        if (!empty($this->get('new_password')) && !empty($this->get('current_password'))) {
            if (
                !Auth::attempt([
                'email' => $this->get('email'),
                'password' => $this->get('current_password'),
                'status' => 'pending'
                ])
            ) {
                $this->validator->getMessageBag()->add('current_password', 'Something is wrong with this field!');
            }
        }

        return [
            'first_name'       => 'required|min:1|max:190',
        ];
    }
}

1 Ответ

3 голосов
/ 18 февраля 2020

Я думаю, вам нужно добавить хук withValidator, как предложено laravel do c.

public function withValidator($validator)
{
    $validator->after(function ($validator) {
        if ($this->somethingElseIsInvalid()) {
            $validator->errors()->add('field', 'Something is wrong with this field!');
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...