validate([ 'company' => 'required|string|max:255', // Nama perusahaan wajib diisi, maksimal 255 karakter 'alamat_company' => 'required|string', // Alamat perusahaan wajib diisi 'no_telp' => 'required|string|max:15', // Nomor telepon wajib diisi, maksimal 15 karakter 'email_company' => 'required|email|max:255', // Email perusahaan wajib diisi, harus format email valid, maksimal 255 karakter 'owner' => 'required|string|max:255', // Nama pemilik wajib diisi, maksimal 255 karakter 'logo_company' => 'nullable|image|mimes:jpeg,png,jpg|max:2048', // Logo perusahaan opsional, harus gambar (jpeg, png, jpg), maksimal 2MB ]); // Menangani unggahan file logo hanya jika ada file baru yang dipilih if ($request->hasFile('logo_company')) { // Menghapus logo lama dari penyimpanan jika ada if ($profile->logo_company) { Storage::disk('public')->delete('logos/' . $profile->logo_company); } // Menyimpan logo baru di direktori 'logos' pada disk public $file = $request->file('logo_company'); $fileName = time() . '_' . $file->getClientOriginalName(); // Membuat nama file unik dengan timestamp $file->storeAs('logos', $fileName, 'public'); // Memperbarui kolom logo_company dengan nama file baru $profile->logo_company = $fileName; } // Memperbarui data profil dengan data yang sudah divalidasi $profile->company = $validatedData['company']; $profile->alamat_company = $validatedData['alamat_company']; $profile->no_telp = $validatedData['no_telp']; $profile->email_company = $validatedData['email_company']; $profile->owner = $validatedData['owner']; // Menyimpan perubahan ke database $profile->save(); // Mengarahkan kembali ke halaman profil dengan pesan sukses return redirect()->route('profile')->with('success', 'Data Profil Berhasil Diubah'); } }