Проверка множественного выбора массива Laravel всегда дает ошибку - PullRequest
0 голосов
/ 12 января 2019

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

<select multiple="multiple" name="skills[]" class="form-control">

правило проверки

'skills[]' => 'required'

если я использую имя поля без [] или навыков. * Проверка не работает для этого поля, укажите мне, где я делаю что-то не так. Я использую Laravel 5.7 для своего проекта.

1 Ответ

0 голосов
/ 12 января 2019

Если ваш select выглядит так, например:

<div class="form-group row">
    <label for="skills" class="col-md-4 col-form-label text-md-right">Skills</label>
    <div class="col-md-6">
        <select multiple name="skills[]" id="skills" class="form-control{{ $errors->has('skills') ? ' is-invalid' : '' }}" required>
            <option value="ios">iOS</option>
            <option value="php">PHP</option>
            <option value="laravel">Laravel</option>
        </select>
        @if($errors->has('skills'))
            <span class="invalid-feedback" role="alert">
                <strong>{{ $errors->first('skills') }}</strong>
            </span>
        @endif
    </div>
</div>

Создать пользовательский запрос:

$ php artisan make:request ExampleRequest

ExampleRequest проверка будет выглядеть так:

public function authorize()
{
    return true;
}

public function rules()
{
    return [
        'skills' => 'required|array',
    ];
}

Затем просто получите проверенные данные с вашего $request напрямую

public function submitForm(ExampleRequest $request)
{
    // at this point, validation already passed
    // if validation failed, you would be back at form with errors
    $skills = request('skills');
    // or
    $skills = $request->skills;

    dd($skills);
}

Пользовательские запросы проверяются в первую очередь, даже до того, как вы попадете в метод контроллера.

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