Например, у меня есть этот URL:
http://127.0.0.1/public?valid=test1&invalid=test2
Итак, я отправляю 2 параметра связанной функции в ее контроллере:
$input = $request->all();
$validator = Validator::make($input, [
'valid' => 'nullable|string',
]);
if ($validator->fails())
{
return back()->withInput()->withErrors($validator);
}
Я ожидаю, что этот URL работает:
http://127.0.0.1/public?valid=test1
Но для этого:
http://127.0.0.1/public?invalid=test2
Я не хочу, чтобы этот URL работал, потому что я не определяю параметр invalid
в Validator (маршрут принял этот URL):
Доза поддержки Laravel для отказа от других параметров?
На сайте Laravel тоже есть эта ошибка
https://laravel.com/?asd=asd
Мое решение:
$input = $request->all();
$valid = ['valid'];
foreach($input as $key => $val)
{
if(!in_array($key,$valid)) abort(404);
}