Запретить отправку данных в форме - PullRequest
0 голосов
/ 20 июня 2019

У меня есть форма HTML в моем представлении Laravel Blade, с картой листовки внутри, чтобы показать некоторые данные. Проблема в том, что когда я хочу отправить свою форму, эта карта генерирует данные и вставляет их в форму с именем поля: "leaflet-base-layer_xx", где xx - это случайные числа, которые меняются каждый раз, поэтому я не могу просто сбросьте эти данные в моем контроллере.

$data = $request->all();
unset($data['leaflet-base-layers_95']);

Можно ли как-то помешать карте предоставить данные. Или каким-то образом я мог бы сбросить нужное поле, зная, что оно имеет гибкое имя?

1 Ответ

0 голосов
/ 20 июня 2019

Вы должны подтвердить запрос.Это не только проверит поля, которые вы действительно хотите, но также предоставит простой способ отфильтровать поля, которые вы не хотите или не ожидали получить.

Например, если ваша форма должнаесть только поле заголовка и тела

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

Теперь $data теперь будет содержать только «заголовок» и «тело», независимо от того, какие другие поля были отправлены.

Если вы возьмете этошаг вперед и используйте запрос формы, вы можете использовать метод $request->validated(), который снова будет содержать только проверенные поля и никакой другой мусор, который вам не нужен.

$data = $request->validated();

Помимо решения вашей проблемыв качестве хорошей практики вы всегда должны работать только с проверенными данными.Передача непроверенных данных по вашему приложению - путь к катастрофе.

Ссылки: https://laravel.com/docs/5.8/validation

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