Использование vue-multiselect в качестве поля ввода с laravel - PullRequest
0 голосов
/ 08 мая 2018

Мне нужно выбрать нескольких пользователей в форме. Поэтому я выбрал компонент vue с именем vue-multiselect . Но я не знаю, как я могу получить идентификаторы выбранного пользователя в массиве $request.

Вот как я использую компонент:

<multiselect
   v-model="selected"
   :options="users"
   :multiple="true"
   track-by="id"
   @open="getUsers"
   :custom-label="customLabel"
   >
</multiselect>

Я связываю options с массивом объектов с именем users, и выбранного пользователя подталкивают к selected prop.

Метод getUsers выполняет Ajax-вызов axios для извлечения всех пользователей в массив users.

Я попытался вставить скрытое поле ввода в форму и смоделировал его с выбранной реквизитом:

<input type="hidden" name="users" v-model="selected">

Но когда форма была отправлена, и я добавил массив запросов в мой контроллер Laravel:

dd(request()->all());

request('users') содержит значение: [object Object], что, безусловно, не то, что я ожидал.

Как получить идентификаторы всех выбранных пользователей?

1 Ответ

0 голосов
/ 20 марта 2019

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

<multiselect
   v-model="selected"
   :options="users"
   :multiple="true"
   track-by="id"
   @open="getUsers"
   :custom-label="customLabel"
   >
</multiselect>
<input type="hidden" name="users" :value="selectedUsers">

и, например, вычисляемое поле:

computed: {
            selectedUsers: function () {
                let selectedUsers = [];
                this.selected.forEach((item) => {
                    selectedUsers.push(item.id);
                });
                return selectedUsers;
            }
        },

При отправке запроса вы увидите:

  'users' => string '114,159' (length=7)

Удачи

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