Не могу сделать множественный выбор в регистрационной форме - PullRequest
0 голосов
/ 24 июня 2018

Я использую базовую форму регистрации, но я хочу добавить несколько вариантов выбора, пользователь может иметь несколько навыков и выбирать их при регистрации.Моя проблема в том, что когда я выбираю значения, кратные Laravel, берут только последнее, поэтому я ищу в Интернете решение, и они говорят добавить [] после имени моего класса, так что я делаю:

 <div class="form-group row">
                        <div class="col-md-6">
                            <?php $competences = \App\Competence::all(); ?>
                            <select name="competences[]" multiple="" class="form-control">
                                <option value="" selected disabled style="display:none">choose your school</option>
                                @foreach ($competences as $competence)
                                    <option value="{{ $competence->id }}">{{ $competence->name }}</option>
                                @endforeach
                            </select>
                        </div>
                    </div>

Но теперь, когда я отправляю форму, страница перезагружается и остается в форме регистрации, а пользователь не регистрируется ... Я не знаю, что делать, у кого-нибудь из вас есть решение?

Вот как я проверяю компетенции в моем регистре. Контроллер

 $competences =  $data['competences'];
    foreach ($competences as $comp){
        $user->competences()->save(Competence::find($comp));
    }

1 Ответ

0 голосов
/ 24 июня 2018

Используйте multiple="multiple" ИЛИ просто multiple в blade.php:

<div class="form-group row">
    <div class="col-md-6">
        <?php $competences = \App\Competence::all(); ?>
        <select name="competences[]" class="form-control" multiple>
            <option value="" selected disabled style="display:none">choose your school</option>
            @foreach ($competences as $competence)
            <option value="{{ $competence->id }}">{{ $competence->name }}</option>
            @endforeach
        </select>
    </div>
</div>

и затем в своем контроллере убедитесь, что вы действительно получаете данные в виде массива, просто напечатав $data

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