Commit 3607836f authored by Alfonso Rafael Solis Rangel's avatar Alfonso Rafael Solis Rangel
Browse files

Intento #1 de actualizar listas

parent 002e3983
Loading
Loading
Loading
Loading
+29 −4
Original line number Diff line number Diff line
@@ -65,17 +65,42 @@ public function show(string $id)
    /**
     * Show the form for editing the specified resource.
     */
    public function edit(Lista $lista)
    public function edit(string $id)
    {
        //
        $contactos = Contacto::get();
        $grupos = Grupos::get();
        $subgrupos = Subgrupo::get();
        $lista = Lista::with('contactos', 'grupos', 'subgrupos')->findOrFail($id);
        return view('adminGen.listas.edit', compact('lista', 'contactos', 'grupos', 'subgrupos'));
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, Lista $lista)
    public function update(Request $request, string $id)
    {
        //
        // Validar solo los campos necesarios
        $request->validate([
            'nombre' => 'required|string|max:255',
        ]);

        // Recuperar la lista existente
        $lista = Lista::findOrFail($id);

        // Actualizar el nombre
        $lista->update($request->only('nombre'));

        // Filtrar valores null y cadenas "null" antes de sincronizar
        $grupoIds = array_filter($request->input('grupo_id', []), fn($value) => $value !== 'null');
        $subgrupoIds = array_filter($request->input('subgrupo_id', []), fn($value) => $value !== 'null');
        $contactoIds = array_filter($request->input('contacto_id', []), fn($value) => $value !== 'null');

        // Sincronizar relaciones
        $lista->grupos()->sync($grupoIds);
        $lista->subgrupos()->sync($subgrupoIds);
        $lista->contactos()->sync($contactoIds);

        return redirect()->route('listas.get')->with('success', 'Lista actualizada correctamente.');
    }

    /**
+399 −0

File added.

Preview size limit exceeded, changes collapsed.

+1 −0
Original line number Diff line number Diff line
@@ -102,5 +102,6 @@
    Route::post('/listas/crear', [ListaController::class, 'store'])->name('store')->middleware(CheckRoles::class . ':admingen,admin,capturista');
    route::get('/listas/{id}/ver', [ListaController::class, 'show'])->name('show')->middleware(CheckRoles::class . ':admingen,admin,capturista');
    Route::get('/listas/{id}/editar', [ListaController::class, 'edit'])->name('edit')->middleware(CheckRoles::class . ':admingen,admin,capturista' );
    Route::put('/listas/{id}/editar', [ListaController::class, 'update'])->name('update')->middleware(CheckRoles::class . ':admingen,admin,capturista' );
    Route::delete('/listas/{id}', [ListaController::class, 'destroy'])->name('destroy')->middleware(CheckRoles::class . ':admingen,admin,capturista');
});