Как использовать Laravel Подтверждение залога? - PullRequest
0 голосов
/ 15 марта 2020

Я использую правило Bail для каждого запроса проверки, и я ожидаю, что он остановится при первом исключении проверки и не проверяет другие параметры запроса. Но он проверяет все входные данные.

MyController. php

public function update(Request $request)
    {
        $user = auth()->user();
        $request->validate([
            'name' => ['bail','string'],
            'email' => ['bail','email', Rule::unique('users')->ignore($user->id)],

        ]);
        $user->update(request()->only('name', 'email'));
        return response()->json($user);
    }

Данные запроса:

{name: "example", email: "example@domain.com"}

Ответ:

{
    "message": "The given data was invalid.",
    "errors": {
        "name": [
            "The name field is required."
        ],
        "email": [
            "The email has already been taken."
        ]
    }
}

В чем проблема?

1 Ответ

1 голос
/ 15 марта 2020

Правило проверки bail применяется к атрибуту "multi-rule" . Он не прекращает проверку для других атрибутов . Из документации :

$request->validate([
    'title' => 'bail|required|unique:posts|max:255',
    'body' => 'required',
]);

Если правило unique для атрибута title не выполняется, правило max проверяться не будет.

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