Как исправить флажок не возвращать значения в Laravel - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь адаптировать форму регистрации по умолчанию в Laravel к таблице пользовательских пользователей базы данных;У меня есть флажок, который не возвращает значения, и хотя он выбран, он не возвращает значение.Валидатор предупреждает меня, что поле флажка необходимо заполнить после отправки, даже если я его выбрал.

Это флажок:

<!--checkbox-->
<div class="form-group row">
    <label for="usertype" class="col-md-4 col-form-label text-md-right">Type Utilisateur</label>
    <div class="col-md-6">
        <input type="checkbox" name="check[]" value="normal"/> Normal
        <input type="checkbox" name="check[]" value="admin"/> Admin
        <input type="checkbox" name="check[]" value="super"/> Super
        @if ($errors->has('usertype'))
            <span class="help-block">
                <strong>{{ $errors->first('usertype') }}</strong>
            </span>
        @endif
    </div>
</div> 

Редактировать: Validator

protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'max:255', 'unique:users'],
            'password' => ['required', 'string', 'min:6', 'confirmed'],
            'telephone' => ['required', 'numeric'],
            'usertype' => ['required', 'string'],
        ]);
    }

Примечание: я удалил usertype from Validation, но регистрация не пошла бы на страницу регистрации, обновилась бы, и никакая ошибка не появляется или какие-либо предупреждения

Ответы [ 2 ]

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

В настоящее время вы отправляете значение флажка как check в Laravel, а не name:

name="check[]"

Вы можете настроить валидатор следующим образом:

protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'max:255', 'unique:users'],
            'password' => ['required', 'string', 'min:6', 'confirmed'],
            'telephone' => ['required', 'numeric'],
            'check' => ['accepted'],
        ]);
    }

Для получения дополнительной информации, проверьте это: https://laravel.com/docs/5.2/validation#rule-accepted. Вы должны использовать accepted для проверки флажков, если вы хотите, чтобы они потребовались.

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

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

В ваших input элементах вместо name="check[]" измените его на name="usertype[]".

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