javascript - 使用 vue-multiselect 作为 laravel 的输入字段

标签 javascript laravel vue.js

我需要在一个表单中选择多个用户。所以我选择了一个名为 vue-multiselect 的 vue 组件.但我不知道如何在 $request 数组中接收选定用户的 ID。

这就是我使用组件的方式:

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

我将 options 绑定(bind)到一个名为 users 的对象数组,并且选定的用户被推送到 selected prop。

getUsers 方法执行 axios ajax 调用以将所有用户提取到 users 数组。

我试图在表单中插入一个隐藏的输入字段并将其 v 建模到选定的 Prop :

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

但是当提交表单并且我在我的 Laravel Controller 中添加请求数组时:

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

request('users') 包含值:[object Object],这绝对不是我所期望的。

如何获取所有选定用户的 ID?

最佳答案

您需要为您的解决方案使用计算字段,例如:

<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)

祝你好运

关于javascript - 使用 vue-multiselect 作为 laravel 的输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50235112/

相关文章:

javascript - 什么是 Angular Material 中的 mdLiveAnnouncer 及其工作原理?

javascript - 菜单粘贴触发了哪个事件?

php - Laravel Blade 不尊重日期转换格式

laravel - 如何使用vuejs显示paypal按钮?

javascript - Ext 继承 - 无法从基类/抽象类获取静态值

php - 未找到 Laravel 类 'HASH'

php - 获取数据库实例的正确语法是什么?

javascript - Vue.js:根据子组件的状态禁用父组件上的按钮

javascript - 使用复选框实现树并拖放

javascript - 检查div是否滚动到底部,如果没有则不理会