Loading app/Http/Controllers/ContactoController.php +80 −4 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ use Illuminate\Support\Facades\DB; use Illuminate\Http\Request; use Illuminate\Support\Str; use Illuminate\Support\Facades\Storage; class ContactoController extends Controller { Loading Loading @@ -149,17 +150,92 @@ public function show(Contacto $contacto) /** * Show the form for editing the specified resource. */ public function edit(Contacto $contacto) public function edit(string $id) { // $conyuges = Contacto::where('id', '!=' ,$id)->get(); $profesiones = Profesion::get(); $cargos = cargos::get(); $caracteristicas = Caracteristicas::get(); $subgrupos = Subgrupo::get(); $contacto = Contacto::with(['telefonos', 'redes', 'correos'])->findOrFail($id); //dd($contacto); return view('adminGen.contactos.edit', compact('contacto', 'conyuges', 'profesiones', 'cargos', 'caracteristicas', 'subgrupos')); } /** * Update the specified resource in storage. */ public function update(Request $request, Contacto $contacto) public function update(Request $request, string $id) { // // Validar los datos $validatedData = $request->validate([ 'nombre' => 'required|string|max:255', 'foto_perfil' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048', ]); $contacto = Contacto::findOrFail($id); $contacto->conyuge_id = $request->input('conyuge_id') !== 'null' ? $request->input('conyuge_id') : null; $contacto->profesion_id = $request->input('profesion_id') !== 'null' ? $request->input('profesion_id') : null; $contacto->cargo_id = $request->input('cargo_id') !== 'null' ? $request->input('cargo_id') : null; $contacto->cargo_desc = $request->input('cargo_desc'); if ($request->hasFile('foto_perfil')) { // Eliminar la foto de perfil anterior si existe if ($contacto->foto_perfil) { Storage::delete('public/' . $contacto->foto_perfil); } // Guardar la nueva foto de perfil $path_file = $this->storeProfilePicture($request); $contacto->foto_perfil = $path_file; } // Actualizar los datos del usuario $contacto->update($validatedData); // Guardar teléfonos $telefonos = collect($request->input('prefijo'))->map(function($prefijo, $index) use ($request) { return [ 'prefijo' => $prefijo, 'lada' => $request->input('lada')[$index], 'numero' => $request->input('numero')[$index], 'tipo' => $request->input('tipo')[$index], 'estatus' => $request->input('estatus')[$index], 'ext' => $request->input('ext')[$index], 'id_radio' => $request->input('id_radio')[$index], 'observaciones' => $request->input('observaciones')[$index], ]; }); $contacto->telefonos()->delete(); $contacto->telefonos()->createMany($telefonos->toArray()); // Guardar redes sociales $redes = collect($request->input('red_social'))->map(function($url, $index) use ($request) { return [ 'red_social' => $url, 'tipo_red_social' => $request->input('tipo_red_social')[$index], ]; }); $contacto->redes()->delete(); $contacto->redes()->createMany($redes->toArray()); // Guardar correos electrónicos $correos = collect($request->input('correo_electronico'))->map(function($email, $index) use ($request) { return [ 'correo_electronico' => $email, 'tipo_correo_electronico' => $request->input('tipo_correo_electronico')[$index], ]; }); $contacto->correos()->delete(); $contacto->correos()->createMany($correos->toArray()); return redirect()->route('contacto.index')->with('success', 'Contacto actualizado correctamente'); } /** Loading Loading
app/Http/Controllers/ContactoController.php +80 −4 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ use Illuminate\Support\Facades\DB; use Illuminate\Http\Request; use Illuminate\Support\Str; use Illuminate\Support\Facades\Storage; class ContactoController extends Controller { Loading Loading @@ -149,17 +150,92 @@ public function show(Contacto $contacto) /** * Show the form for editing the specified resource. */ public function edit(Contacto $contacto) public function edit(string $id) { // $conyuges = Contacto::where('id', '!=' ,$id)->get(); $profesiones = Profesion::get(); $cargos = cargos::get(); $caracteristicas = Caracteristicas::get(); $subgrupos = Subgrupo::get(); $contacto = Contacto::with(['telefonos', 'redes', 'correos'])->findOrFail($id); //dd($contacto); return view('adminGen.contactos.edit', compact('contacto', 'conyuges', 'profesiones', 'cargos', 'caracteristicas', 'subgrupos')); } /** * Update the specified resource in storage. */ public function update(Request $request, Contacto $contacto) public function update(Request $request, string $id) { // // Validar los datos $validatedData = $request->validate([ 'nombre' => 'required|string|max:255', 'foto_perfil' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048', ]); $contacto = Contacto::findOrFail($id); $contacto->conyuge_id = $request->input('conyuge_id') !== 'null' ? $request->input('conyuge_id') : null; $contacto->profesion_id = $request->input('profesion_id') !== 'null' ? $request->input('profesion_id') : null; $contacto->cargo_id = $request->input('cargo_id') !== 'null' ? $request->input('cargo_id') : null; $contacto->cargo_desc = $request->input('cargo_desc'); if ($request->hasFile('foto_perfil')) { // Eliminar la foto de perfil anterior si existe if ($contacto->foto_perfil) { Storage::delete('public/' . $contacto->foto_perfil); } // Guardar la nueva foto de perfil $path_file = $this->storeProfilePicture($request); $contacto->foto_perfil = $path_file; } // Actualizar los datos del usuario $contacto->update($validatedData); // Guardar teléfonos $telefonos = collect($request->input('prefijo'))->map(function($prefijo, $index) use ($request) { return [ 'prefijo' => $prefijo, 'lada' => $request->input('lada')[$index], 'numero' => $request->input('numero')[$index], 'tipo' => $request->input('tipo')[$index], 'estatus' => $request->input('estatus')[$index], 'ext' => $request->input('ext')[$index], 'id_radio' => $request->input('id_radio')[$index], 'observaciones' => $request->input('observaciones')[$index], ]; }); $contacto->telefonos()->delete(); $contacto->telefonos()->createMany($telefonos->toArray()); // Guardar redes sociales $redes = collect($request->input('red_social'))->map(function($url, $index) use ($request) { return [ 'red_social' => $url, 'tipo_red_social' => $request->input('tipo_red_social')[$index], ]; }); $contacto->redes()->delete(); $contacto->redes()->createMany($redes->toArray()); // Guardar correos electrónicos $correos = collect($request->input('correo_electronico'))->map(function($email, $index) use ($request) { return [ 'correo_electronico' => $email, 'tipo_correo_electronico' => $request->input('tipo_correo_electronico')[$index], ]; }); $contacto->correos()->delete(); $contacto->correos()->createMany($correos->toArray()); return redirect()->route('contacto.index')->with('success', 'Contacto actualizado correctamente'); } /** Loading