Добавление правила валидации только в том случае, если все остальные правила пройдены, или прекратить валидацию всего набора атрибутов при первой ошибке в Laravel 5.7

Обычно при разработке с помощью реакции вам даже не нужно обновлять страницу, в которой вы находитесь. После сохранения изменений в редакторе они сразу будут видны в браузере. Возможно, вы сделали ошибку, установив index.js

. Когда вы начнете с реакции, я предлагаю вам использовать https://github.com/facebook/create-react-app

С этим очень легко начать, и вы можете немного поиграть и начать работу с React.

0
задан AleksG 18 January 2019 в 17:50
поделиться

1 ответ

Я наконец-то нашел решение сам. Вот чем я закончил.

Для достижения желаемого результата я создал другой валидатор в методе withValidator() моего пользовательского запроса формы, этот второй валидатор будет обрабатывать только правило FolderExists и только в случае неудачи предыдущей валидации.

public function rules()
    {
        return [
            'asset-id' => ['bail', 'required', 'integer', 'exists:assets,id'],
            'relative-path' => ['bail', 'required', 'string'],
            'new-folder-name' => ['bail', 'required', 'string', 'min:3', 'max:150', new FolderName]
        ];
    }

public function withValidator($validator)
    {
        if (!$validator->fails())
        {
            $v = Validator::make($this->input(),[
                'new-folder-name' => [new FolderExists($this->input('asset-id'), $this->input('relative-path'))]
            ]);
            $v->validate();
        }
    }

Если наш основной валидатор проходит, мы создаем другой валидатор и передаем только правило FolderExists с его аргументами, которые уже были проверены, и вызываем метод validate(). Вот и все.

0
ответ дан AleksG 18 January 2019 в 17:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: