将单选按钮添加到 Laravel Spark - Vue 组件页面

Adding radio buttons to Laravel Spark - Vue component page

我试图尽可能地远离 Spark 的 Vue 组件,但我发现我必须实现某些邮件设置,所以我不能再坚持了。

幸运的是,Spark 文档包含一个用于添加配置文件字段的小手册: https://spark.laravel.com/docs/4.0/adding-profile-fields

大部分都在我(有限PHP)的舒适区内:

首先是blade php:

邮件设置

      <div class="col-md-6">
        <label class="radio-inline"><input type="radio" value="profile" v-model="form.type" name="profile">Profile</label>
        <label class="radio-inline"><input type="radio" value="website" v-model="form.type" name="website">Website</label>
        <label class="radio-inline"><input type="radio" value="combined" v-model="form.type" name="combined">Combined</label>

        <span class="help-block" v-show="form.errors.has('mail-settings')">
          @{{ form.errors.get('mail-settings') }}
        </span>
      </div>
    </div>

集成的是:

 <!-- Update Mail settings -->
   @include('settings.profile.update-mail-settings')

所以在前面的代码块中可以看出,我希望存储 3 个单选按钮的结果。 然而,链接的 Vue js 文件让我很头疼:

Vue.component('update-mail-settings', {
    props: ['user'],

    data() {
        return {
            form: new SparkForm({
                profile: ''
                website: ''
                combined: ''
            })
        };
    },

    mounted() {
        this.form.mailsettings = this.user.mailsettings;
    },

    methods: {
        update() {
            Spark.put('/settings/profile/mail-settings', this.form)
                .then(response => {
                    Bus.$emit('updateUser');
                });
        }
    }
});

但是我究竟如何将单选按钮集成到 SparkForm 中?

在 Vue 中,当您按名称对对象进行 v-model 时,就会发生数据绑定。或者换句话说,您在输入上调用 v-model="object.property" 。当用户填写表单时,form.type 的值将匹配表单输入。因此,只需将您的表单对象更改为:

 data() {
   return {
    form: new SparkForm({
        type: ''    <-  this can now be v-modeled to "form.type"
    })
  };
},

您的单选按钮不需要更改,因为它们已正确绑定:v-model="form.type"

https://vuejs.org/v2/guide/forms.html#Radio