как не пройти проверку Laravel, если ему передаются дополнительные параметры?

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

['id'=>'required|integer']

если пользователь отправляет что-то дополнительное, например

'name'=>'foo'

проверка должна завершиться неудачно, и сообщение об ошибке будет выглядеть примерно так:

the name param is not allowed.

person soha1410    schedule 10.05.2018    source источник
comment
см. этот aaronsaray.com/2017/laravel-validate-parameter-not-present также, какова ваша цель для этого?   -  person Wreigh    schedule 10.05.2018
comment
цель состоит в том, чтобы пользователь не отправлял какие-либо дополнительные параметры ключ-значение в API.   -  person soha1410    schedule 10.05.2018
comment
в вашем приложении ничего страшного, если есть лишний ключ-значение, но он не будет сохранен? или вам действительно нужно возвращать ошибку всякий раз, когда это происходит?   -  person Wreigh    schedule 10.05.2018
comment
мне нужно вернуть ошибку, если это произойдет.   -  person soha1410    schedule 10.05.2018
comment
Я не вижу в этом применения? Если они передают дополнительные параметры в API, они будут просто проигнорированы, как и любой другой API?   -  person Kyle Wardle    schedule 10.05.2018


Ответы (1)


Вы можете написать собственное правило проверки или вы можете сделать

if(!in_array("name", $request->all())){
    return redirect()->back()->with('errorMessage','the name param is not allowed.')->withInput();
}

и показать сообщение об ошибке в файле блейда

@if (session('errorMessage'))
    {{ session('errorMessage') }}
@endif
person Daud khan    schedule 02.01.2019