Проверка формы в поле выбора - PullRequest
1 голос
/ 23 октября 2019

Есть ли способ проверить, не манипулировал ли пользователь формой? В моей форме я получаю все доступные записи, но если пользователь изменяет идентификатор значения в браузере, я просто получаю сообщение об ошибке. Любые советы:)?

<div class="form-group-row club col-lg-10">
    <label>Choose Product</label>
    <select name="product_id" class="form-control" required>
    @foreach($products as $product)
        <option value="{{$product->id}}">{{$product-> product}}</option>
    @endforeach
    </select>
</div>

Ответы [ 2 ]

0 голосов
/ 23 октября 2019

Вы можете использовать правило для проверки полученных данных, как:

use Illuminate\Validation\Rule;

Validator::make($data, [
    'product_id' => [
        'required',
        Rule::in([/*array of products ids here*/]),
    ],
]);

Взгляните на https://laravel.com/docs/5.8/validation#rule-in

Вы можете использовать существует как:

Validator::make($data, [
    'product_id' => [
        'required',
        'exists:table_name,column_name'
    ],
]);
0 голосов
/ 23 октября 2019

вы можете выбрать только для чтения

<select name="product_id" class="form-control" required readonly>

, но пользователь может изменить html с помощью devtools

, также вы можете проверить его на стороне сервера, как это

if ($products->pluck('id')->diff(request()->input('product_id'))->empty()) {
    //not changed
}
...