fix: name fields being updated instead of first_name and last_name

This commit is contained in:
2025-11-03 12:25:23 +01:00
parent 197b26cf08
commit 6bf5900533
4 changed files with 34 additions and 21 deletions

View File

@@ -68,7 +68,8 @@ class CompanyController extends Controller
'address' => ['required', 'string', 'max:500'],
'ico' => ['required', 'integer'],
'hiring' => ['required', 'boolean'],
'contact.name' => ['required', 'string', 'max:255'],
'contact.first_name' => ['required', 'string', 'max:255'],
'contact.last_name' => ['required', 'string', 'max:255'],
'contact.email' => ['required', 'email', 'max:255', 'unique:users,email,' . $company->contact],
'contact.phone' => ['nullable', 'string', 'max:20'],
]);
@@ -87,7 +88,9 @@ class CompanyController extends Controller
if ($contactPerson) {
$contactPerson->update([
'name' => $request->contact['name'],
'first_name' => $request->contact['first_name'],
'last_name' => $request->contact['last_name'],
'name' => $request->contact['first_name'] . ' ' . $request->contact['last_name'],
'email' => $request->contact['email'],
'phone' => $request->contact['phone'] ?? null,
]);

View File

@@ -84,7 +84,8 @@ class StudentDataController extends Controller
// Validácia dát
$request->validate([
'name' => ['required', 'string', 'max:255'],
'first_name' => ['required', 'string', 'max:255'],
'last_name' => ['required', 'string', 'max:255'],
'email' => ['required', 'email', 'max:255', 'unique:users,email,' . $id],
'phone' => ['nullable', 'string', 'max:20'],
'student_data.study_field' => ['nullable', 'string', 'max:255'],
@@ -94,7 +95,9 @@ class StudentDataController extends Controller
// Aktualizácia User údajov
$student->update([
'name' => $request->name,
'name' => $request->first_name . ' ' . $request->last_name,
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'email' => $request->email,
'phone' => $request->phone,
]);

View File

@@ -19,7 +19,8 @@ const form = ref({
ico: 0,
hiring: false,
contact: {
name: '',
first_name: '',
last_name: '',
email: '',
phone: ''
}
@@ -34,7 +35,8 @@ watch(data, (newData) => {
form.value.address = newData.address;
form.value.ico = newData.ico;
form.value.hiring = !!newData.hiring;
form.value.contact.name = newData.contact?.name;
form.value.contact.first_name = newData.contact?.first_name;
form.value.contact.last_name = newData.contact?.last_name;
form.value.contact.email = newData.contact?.email;
form.value.contact.phone = newData.contact?.phone;
loading.value = false;
@@ -102,7 +104,10 @@ function cancel() {
<h3 class="mb-3">Kontaktná osoba</h3>
<v-text-field v-model="form.contact.name" label="Meno a priezvisko" required
<v-text-field v-model="form.contact.first_name" label="Meno" required variant="outlined"
class="mb-3"></v-text-field>
<v-text-field v-model="form.contact.last_name" label="Priezvisko" required
variant="outlined" class="mb-3"></v-text-field>
<v-text-field v-model="form.contact.email" label="E-mail" type="email" required

View File

@@ -15,7 +15,8 @@ const loading = ref(true);
const saving = ref(false);
const form = ref({
name: '',
first_name: '',
last_name: '',
email: '',
phone: '',
student_data: {
@@ -24,27 +25,25 @@ const form = ref({
address: ''
}
});
const { data } = await useSanctumFetch<User>(`/api/students/${studentId}`);
// Načítanie dát študenta
watch(data, (newData) => {
if (newData) {
student.value = newData;
form.value = {
name: newData.name || '',
email: newData.email || '',
phone: newData.phone || '',
student_data: {
study_field: newData.student_data?.study_field || '',
personal_email: newData.student_data?.personal_email || '',
address: newData.student_data?.address || ''
}
};
form.value.first_name = newData.first_name;
form.value.last_name = newData.last_name;
form.value.email = newData.email;
form.value.phone = newData.phone;
form.value.student_data.study_field = newData.student_data!.study_field;
form.value.student_data.personal_email = newData.student_data!.personal_email;
form.value.student_data.address = newData.student_data!.address;
}
navigateTo('/dashboard/admin/students');
}
);
});
// Uloženie zmien
async function saveChanges() {
@@ -91,7 +90,10 @@ function cancel() {
<v-card-title>Základné údaje</v-card-title>
<v-card-text>
<v-form>
<v-text-field v-model="form.name" label="Meno a priezvisko" required variant="outlined"
<v-text-field v-model="form.first_name" label="Meno" required variant="outlined"
class="mb-3"></v-text-field>
<v-text-field v-model="form.last_name" label="Priezvisko" required variant="outlined"
class="mb-3"></v-text-field>
<v-text-field v-model="form.email" label="E-mail (prihlasovací)" type="email" required