Входное значение должно быть равно некоторому значению в базе данных - PullRequest
0 голосов
/ 17 февраля 2020

Итак, у меня есть этот простой код для выбора значения из базы данных в регистрационной форме, и он отлично работает

<div id="ref1" class="form-group form-material floating">
    <select class="form-control" name="reference" id="reference">
      @foreach (App\Models\Reference::getReference() as $key => $value)
        <option value="" selected disabled hidden></option>
        <option value="{{$value->id}}">{{$value->reference}}</option>
      @endforeach
    </select>
    <label class="floating-label" for="inputStatus">Reference</label>
</div>

Но я хочу изменить это поле ввода, поэтому, когда пользователь вводит его вручную, и это не имеет то же значение в базе данных, регистрация не удастся (Сообщение об ошибке: «Неверный ссылочный код»), есть у кого-нибудь и идея, как это сделать? Спасибо

Редактировать 1: у меня также есть этот код проверки для ссылки

reference: {
            validators: {
                notEmpty: {
                    message: 'Reference must be filled'
                },
                stringLength: {
                    max: 8,
                    message: 'Reference maximal 8 digit'
                }
            }
        }

Могу ли я также использовать правило для этого валидатора?

1 Ответ

0 голосов
/ 17 февраля 2020

Это можно сделать путем создания пользовательской проверки Laravel Request. Если ваша ссылка хранится в базе данных, вы можете проверить, существует ли введенное значение в базе данных, после отправки формы, используя правило exists. Вот простой пример:

    public function rules()
    {
        return [
            'field_name' => 'exists:your_table_name', //Table name where reference is stored
        ];
    }
    public function messages()
    {
        return [
            'field_name.exists' => 'Wrong reference code',
        ];
    }

Вы можете прочитать больше на официальной документации .

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