将单选按钮添加到 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"
我试图尽可能地远离 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"