Tengo un problema al enviar el valor de una selección a mi base de datos. Estoy usando Vue, quasar y mecanografiado.
Tengo un modal con entradas de nombre y edad, además tengo una selección que selecciona una categoría. Pero, al enviar este valor de selección a la base de datos, se envía un objeto con la etiqueta y el valor de la selección. Pero la base de datos solo lo aceptaría si fuera un valor numérico.
const baseFieldStates = { name: '', age: '', category: null, }; //@ts-ignore const fieldStates: Ref<UserFormData> = ref({ ...baseFieldStates, ...props.userData });Aquí estaría mi función para guardar un usuario y enviar sus datos.
const userAction = props.userData ? editUser : createUser const saveUser = () => { userAction(fieldStates.value) .then(() => { onDialogOK(fieldStates.value); }) .catch(() => { onDialogCancel(); }) };Mi selección:
<q-select outlined class="q-mb-lg" :options="rolesOptions" option-value="value" option-label="label" :label="$t('Users.form.role')" v-model="fieldStates.category" />Este es un ejemplo de cómo mi selección se envía a la base de datos.
{etiqueta: 'Ejemplo', valor: 1}
Debe agregar emit-value y map-options , consulte: https://quasar.dev/vue-components/select#affecting-model como se describe aquí.
Quasar framework q-select establece un objeto en el modelo v que el id
<q-select outlined class="q-mb-lg" :options="rolesOptions" emit-value map-options :label="$t('Users.form.role')" v-model="fieldStates.category" />