ejemplo de function crear

PHOTO EMBED

Wed Aug 06 2025 13:35:49 GMT+0000 (Coordinated Universal Time)

Saved by @jrg_300i #php #laravel

 public function crear(Request $request)
    {

        if ($request->isMethod('post')) {
            
            DB::beginTransaction();

            try {
                // Primero crea la persona
                $persona = \App\Models\Personas::create([
                    'cedula' => $request->documento,
                    'nombres' => mb_strtoupper($request->nombres, 'UTF-8'),
                    'apellidos' => mb_strtoupper($request->apellidos, 'UTF-8'),
                    'telefono' => $request->telefono,
                    'email' => $request->email,
                    'fecha_nacimiento' => $request->fecha_nacimiento ?: null,
                    'genero_id' => $request->genero_id,
                ]);

                // Luego crea el usuario, asignando el persona_id recién creado
                $usuario = User::create([
                    'activo' => true,
                    'role_id' => 3,
                    'username' => $request->username,
                    'password' => Hash::make($request->contrasena),
                    'fecha_registro' => now(),
                    'persona_id' => $persona->id,
                    'user_id' => Auth::id(), // equivalente a Auth::user()->id y más seguro
                    'ip' => $request->ip(),
                ]);

                // Finalmente crea la relación con el ente/instituto
                $user_ente = \App\Models\UserInstituto::create([
                    'user_id' => $usuario->id,
                    'instituto_id' => $request->instituto_id,
                    'activo' => true,
                ]);

                DB::commit();

                return redirect()->route('usuarios.index')->with('success', 'Usuario creado exitosamente');
            } catch (\Exception $e) {
                DB::rollback();
                return redirect()->back()->withErrors(['error' => 'Error al crear el usuario: ' . $e->getMessage()]);
            }
            // return redirect()->route('usuarios.crear', ['success' => 'Usuario creado exitosamente.']);
            return redirect()->route('usuarios.index')->with('success', 'Usuario creado exitosamente.');

        } else {
            $Genero = \App\Models\Genero::get()->pluck("nombre", "id");
            $Instituto = \App\Models\Instituto::get()->pluck("nombre", "id");

            //  dd($Ente);
            return view('users.crear', compact('Instituto', 'Genero'));
           


        }
    }
content_copyCOPY