ejemplo de function crear
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'));
}
}



Comments