@vincent15000 You need to study the docs a bit more: https://v3.vuejs.org/guide/component-basics.html#using-v-model-on-components
The names of the props and events changed in Vue 3. So now you need to bind a modelValue prop, and emit a update:modelValue event:
<!-- resources/js/components/ParentComponent.vue -->
<template>
<fundings-select
v-model="student.funding_id"
:fundings="fundingOptions"
/>
<p v-if="student.funding_id">Selected funding ID: {{ student.funding_id }}</p>
</template>
<!-- resources/js/components/FundingsSelect.vue -->
<template>
<select
:value="modelValue"
@input="$emit('update:modelValue', $event.target.value)"
>
<option
v-for="funding in fundings"
:key="funding.id"
:value="funding.id"
v-text="funding.name
/>
</select>
</template>
<script>
export default {
props: {
modelValue: {
default: null,
required: false,
type: String,
},
},
emits: ['update:modelValue'],
};
</script>
Now your student.funding_id value will be updated based on what is selected in the <fundings-select> component.