diff --git a/app/Http/Controllers/usuariosController.php b/app/Http/Controllers/usuariosController.php index 5fe3abf..0a332bf 100644 --- a/app/Http/Controllers/usuariosController.php +++ b/app/Http/Controllers/usuariosController.php @@ -7,6 +7,7 @@ use Illuminate\Http\Request; use App\Exports\UsuariosExport; use Maatwebsite\Excel\Facades\Excel; use PDF; // Asegúrate de incluir la clase PDF +use App\Models\Puesto; class usuariosController extends Controller { @@ -38,7 +39,8 @@ class usuariosController extends Controller */ public function create() { - return view('usuariosCrearEditar'); // Vista para crear usuario + $puestos = Puesto::all(); + return view('usuariosCrearEditar', ['usuario' => null, 'puestos' => $puestos]); } @@ -52,18 +54,18 @@ class usuariosController extends Controller 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'apellido' => 'required|string|max:255', - 'puesto' => 'required|string|max:255', + 'puesto_id' => 'required|exists:puestos,id', 'carrera' => 'required|string|max:255', 'telefono' => 'required|string|max:255', 'password' => 'required|string|min:8|confirmed', ]); - // Crear nuevo usuario + // Si la validación pasa, crea el usuario $usuario = new User(); $usuario->name = $request->name; $usuario->email = $request->email; $usuario->apellido = $request->apellido; - $usuario->puesto = $request->puesto; + $usuario->puesto_id = $request->puesto_id; $usuario->carrera = $request->carrera; $usuario->telefono = $request->telefono; $usuario->password = bcrypt($request->password); @@ -83,11 +85,14 @@ class usuariosController extends Controller /** * Show the form for editing the specified resource. */ - public function edit($id) + // ... existing code ... + public function edit($id) { - $usuario = User::findOrFail($id); - return view('usuariosCrearEditar', compact('usuario')); // Vista para editar usuario + $user = User::findOrFail($id); + $puestos = Puesto::all(); + return view('usuariosCrearEditar',['usuario' => $user, 'puestos' => $puestos]); // Asegúrate de que la clave sea 'usuario' } +// ... existing code ... /** @@ -100,7 +105,7 @@ class usuariosController extends Controller 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255', 'apellido' => 'required|string|max:255', - 'puesto' => 'required|string|max:255', + //'puesto_id' => 'required|exists:puesto_id', 'carrera' => 'required|string|max:255', 'telefono' => 'required|string|max:255', 'password' => 'nullable|string|min:8|confirmed', @@ -111,7 +116,7 @@ class usuariosController extends Controller $usuario->name = $request->name; $usuario->email = $request->email; $usuario->apellido = $request->apellido; - $usuario->puesto = $request->puesto; + $usuario->puesto_id = $request->puesto_id; $usuario->carrera = $request->carrera; $usuario->telefono = $request->telefono; diff --git a/app/Models/User.php b/app/Models/User.php index 4e5bc5f..fced612 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -7,6 +7,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Laravel\Sanctum\HasApiTokens; +use Illuminate\Database\Eloquent\Relations\HasOne; class User extends Authenticatable { @@ -21,12 +22,13 @@ class User extends Authenticatable 'name', 'email', 'apellido', - 'puesto', + 'puesto_id', 'carrera', 'telefono', 'password', ]; + /** * The attributes that should be hidden for serialization. * @@ -45,4 +47,8 @@ class User extends Authenticatable protected $casts = [ 'email_verified_at' => 'datetime', ]; + + public function puesto():HasOne{ + return $this->hasOne(Puesto::class, 'id','puesto_id'); + } } diff --git a/app/Models/puesto.php b/app/Models/puesto.php new file mode 100644 index 0000000..70b90a4 --- /dev/null +++ b/app/Models/puesto.php @@ -0,0 +1,11 @@ +id(); + $table->string('nombre'); + $table->timestamps(); + }); + DB::table('puestos')->insert(['nombre'=> 'Administrativo']); + DB::table('puestos')->insert(['nombre'=> 'docente']); + DB::table('puestos')->insert(['nombre'=> 'coordinador']); + DB::table('puestos')->insert(['nombre'=> 'personal general']); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('puestos'); + } +}; diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php index db1a412..89dba93 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -17,12 +17,14 @@ return new class extends Migration $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('apellido')->nullable(); - $table->string('puesto')->nullable(); + $table->unsignedBigInteger('puesto_id')->nullable(); $table->string('carrera')->nullable(); $table->string('telefono')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); + $table->foreign('puesto_id')->references('id')->on('puestos'); + }); DB::table('users')->insert([ 'name'=> 'Administrador', diff --git a/resources/views/marcas.blade.php b/resources/views/marcas.blade.php index b7bf6b8..1d2d295 100644 --- a/resources/views/marcas.blade.php +++ b/resources/views/marcas.blade.php @@ -75,16 +75,16 @@
ID | +Número | Marca | Estado | Acciones |
---|---|---|---|---|
{{ $marca->id }} | +{{ $index + 1 }} | {{ $marca->marca }} @@ -121,7 +121,7 @@ |