You don't need to bind form.company_id into the select. Also, as far as I know you can't do multiple bindings for v-model just like what you did.
All you need to do is v-model=selected and set the default value in your data - just like what you did. You now can remove company_id in you new Form({...}).
Final result would be similar to this:
<template>
// form fields
// bind selected to this form input
<select v-model="selected"
name="company_id">
<option v-for="company in companies"
:value="company.id"
v-text="company.name"></option>
</select>
// more fields
</template>
<script>
export default {
props: ['companies'],
data() {
return {
form: new Form({
name: '',
display_name: '',
phone: '',
}),
selected: '1' // initial value. This will automatically change when a diff value is selected in the input.
}
},
// methods etc
}
</script>