Manejo de formularios en varios tabs en laravel 8 con cookies

 En el post anterior explique la forma en que solucione el manejo de formularios en varios tabs en laravel 8 con el uso del cache en laravel 8.

El problema en lo personal es que la configuración no era personalizada para cada usuario, para corregir eso utilice cookies. Las cuales se almacenan de forma personalizada en cada navegador.

En el controlador UserController en la funcion index creo la cookies de la siguiente forma:

public function index(){

        Cookie::queue('tabusuario''1');
        return view('configuracion.user', [
            'users' => $this->users,
        ]);
    }

Cookie::queue('tabusuario','1') permite colocar una cookie en cola para luego adjuntarla cuando la respuesta se envié. Es importante agregar la fachada 

use Illuminate\Support\Facades\Cookie;

En la vista userEdit.blade.php , en donde están los 3 formularios , uno en cada tab

Para las pestañas hago la siguiente validación en cada una de las etiquetas a, si la cookie tabusuario es igual a 1 agrego la clase 'active', caso contrario no se agrega nada y prosigo a la siguiente validación

@if(Cookie::get('tabusuario') == 1{{'active'}} @endif

<ul class="nav nav-pills">
                <li class="nav-item"><a class="nav-link @if(Cookie::get('tabusuario') == 1{{'active'}} @endif" href="#formulario" data-toggle="tab"> Formulario de usuarios</a></li>
                <li class="nav-item"><a class="nav-link @if(Cookie::get('tabusuario') == 2{{'active'}} @endif" href="#rolesypermisos" data-toggle="tab"> Roles y permiso</a></li>
                <li class="nav-item"><a class="nav-link @if(Cookie::get('tabusuario') == 3{{'active'}} @endif" href="#permissions" data-toggle="tab">Permisos especiales</a></li>
        </ul>

Para la validación en los tab-content hice lo siguiente para obtener el valor de la cookie

@if (Cookie::get('tabusuario') == 1)
       <div class="active tab-pane" id="formulario">
@else
       <div class="tab-pane" id="formulario">
@endif

Finalmente en cada una de la transacciones como actualizar usuario, actualizar roles, y agregar permisos especiales se debe editar el valor de la cookies.

public function update(User $user,UpdateUserRequest $request){
        $user->update($request->validated());
        $tabusuario =cookie('tabusuario''1');
        return back()->with('status',  'El usuario '.$request->name.' se ha actualizado satisfactoriamente')->cookie($tabusuario);
    }

Espero les haya servido y ahorrado un poco de tiempo.

Comentarios

Entradas más populares de este blog

USO DE DBLINK EN FUNCIONES DE POSTGRESQL(PARTE UNO)

PASAR UN ARRAY COMO PARAMETRO A UNA FUNCION DE POSTGRESQL (PARTE UNO)

Codeigniter solucion de :A PHP Error was encountered