Запрос формы, как добавить дополнительные сообщения об ошибках после выполнения проверки с использованием условия if? - PullRequest
0 голосов
/ 08 февраля 2019

Добавление сообщений об ошибках в запросы формы с использованием определенных условий.

Я выполняю запрос формы для обработки моих проверок.В моей форме у меня есть пара полей, но важными являются раскрытие "Месяц", "День" или "Год".Все они установлены на обязательные, и если один из них аннулирует обязательное правило, запрос формы обработает его, создав другую ошибку внутри $ validator.

Логика выглядит примерно так:

If (month = fail || day = fail || year = fail) {
   $validator->errors()->add('date', 'please fill out the whole date)
}

Я бы хотел сделать это где-нибудь в моем запросе формы после проверки.

Это мои правила для поля запроса формы.

public function rules()
    {
        return [
            'name' => 'nullable',
            'sex' => 'nullable',
            'phone_number' => 'nullable',
            'email' => 'nullable',
            'month' => 'bail|required',
            'day' => 'bail|required',
            'year' => 'bail|required',
        ];
    }

И на мой взгляд (шаблон ветки) под полями выбора месяца, дня, года, у меня есть это, чтобы якобы показать мое сообщение об ошибке:

{{errors.first('date')}}

Пока я не знаю, как написать условие и добавить пользовательскую ошибкусообщение.

Редактировать: Я нашел ответ, но я не уверен, если это хорошая практика.Может быть, кто-то может найти лучший ответ, чем этот.

protected function failedValidation(Validator $validator) {

        if (array_key_exists('month', $validator->failed()) || 
            array_key_exists('day', $validator->failed()) ||
            array_key_exists('year', $validator->failed()) ) {
                $validator->getMessageBag()->add('date', 'sample error message');
            }
}

1 Ответ

0 голосов
/ 08 февраля 2019

Я думаю, что было бы лучше использовать После проверки .

Обычно вы добавляете это в свой запрос формы.

/**
* Configure the validator instance.
*
* @param  \Illuminate\Validation\Validator  $validator
* @return void
*/
public function withValidator($validator)
{
    $validator->after(function ($validator) {
        if(
            $validator->errors()->has('month')
            || $validator->errors()->has('day')
            || $validator->errors()->has('year')
        ) {
            $validator->errors()->add('date', 'Please fill out the whole date!');
        }
    });
}

Вы можете проверить документацию для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...