Browse Source

Version 3

main
Damian 3 weeks ago
parent
commit
0474545b1a
  1. 69
      app/Http/Controllers/AutoController.php
  2. 82
      app/Http/Controllers/TrabajadorController.php
  3. 5
      app/Http/Controllers/UsuariosController.php
  4. 14
      app/Models/Auto.php
  5. 19
      app/Models/Puesto.php
  6. 20
      app/Models/Trabajador.php
  7. 7
      app/Models/User.php
  8. 27
      database/factories/AutoFactory.php
  9. 29
      database/factories/TrabajadorFactory.php
  10. 38
      database/migrations/2014_09_06_173516_create_puestos_table.php
  11. 6
      database/migrations/2014_10_12_000000_create_users_table.php
  12. 32
      database/migrations/2025_02_27_155258_create_autos_table.php
  13. 36
      database/migrations/2025_03_06_174749_create_trabajadors_table.php
  14. 31
      database/migrations/2025_03_14_184342_add_column_puesto_to_users.php
  15. 22
      database/migrations/2026_03_21_000000_modify_sueldo_column_in_trabajadors_table.php
  16. 17
      database/seeders/AutoSeeder.php
  17. 5
      database/seeders/DatabaseSeeder.php
  18. 18
      database/seeders/TrabajadorSeeder.php
  19. 77
      resources/views/autos.blade.php
  20. 49
      resources/views/autosCrearEditar.blade.php
  21. 38
      resources/views/layouts/plantilla.blade.php
  22. 4
      resources/views/layouts/sidebar.blade.php
  23. 49
      resources/views/trabajadores.blade.php
  24. 66
      resources/views/trabajadoresCrearEditar.blade.php
  25. 3
      resources/views/usuarios.blade.php
  26. 8
      resources/views/usuariosCrearEditar.blade.php
  27. 8
      routes/web.php

69
app/Http/Controllers/AutoController.php

@ -0,0 +1,69 @@
<?php
namespace App\Http\Controllers;
use App\Models\Auto;
use Illuminate\Http\Request;
class AutoController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
$autos = Auto::all();
return view('autos', ['autos' => $autos]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('autosCrearEditar', ['auto' => null]);
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
$auto = Auto::create($request->all());
return redirect()->route('autos.index');
}
/**
* Display the specified resource.
*/
public function show(Auto $auto)
{
return view('autosCrearEditar', ['auto' => $auto]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(Auto $auto)
{
return view('autosCrearEditar', ['auto' => $auto]);
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, Auto $auto)
{
$auto->update($request->all());
return redirect()->route('autos.index');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(Auto $auto)
{
$auto->delete();
return redirect()->route('autos.index');
}
}

82
app/Http/Controllers/TrabajadorController.php

@ -0,0 +1,82 @@
<?php
namespace App\Http\Controllers;
use App\Models\Trabajador;
use Illuminate\Http\Request;
use App\Models\Puesto;
class TrabajadorController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
$trabajadores = Trabajador::all();
return view('trabajadores', ['trabajadores' => $trabajadores]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
$puestos = Puesto::all();
return view('trabajadoresCrearEditar', ['trabajador' => null, 'puestos' => $puestos]);
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
$trabajador2 = new Trabajador($request->all());
$trabajador2->save();
return redirect()->route('trabajadores.index')->with('succes',value: 'El auto se agregó');
}
/**
* Display the specified resource.
*/
public function show(Trabajador $trabajador)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit($id)
{
$puestos = Puesto::all();
$trabajador = Trabajador::find($id);
return view('trabajadoresCrearEditar', ['trabajador' => $trabajador, 'puestos' => $puestos])->with(key: 'warning', value:'Actualizado correctamente');
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, $id)
{
$trabajador = Trabajador::find($id); //Busca el trabajador por el id
$trabajador->update($request->all()); //Actualiza los datos del trabajador
return redirect()->route('trabajadores.index')->with(key: 'warning', value:'Actualizado correctamente'); //Redirecciona a la página de index
}
/**
* Remove the specified resource from storage.
*/
public function destroy($id)
{
$trabajador = Trabajador::find($id); //Busca el trabajador por el id
if($trabajador->puesto_id()!=1){
$trabajador->delete(); //Elimina el trabajador:
return redirect()->route('trabajadores.index')->with(key: 'succes', value:'Eliminado correctamente'); //Redirecciona a la página de index
}else{
return redirect()->route('trabajadores.index')->with(key: 'error', value:'No se puede eliminar el trabajador porque no tiene un puesto asignado'); //Redirecciona a la página de index
}
}
}

5
app/Http/Controllers/UsuariosController.php

@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use App\Models\User;
use App\Models\Puesto;
use Illuminate\Http\Request;
class UsuariosController extends Controller
@ -22,7 +23,8 @@ class UsuariosController extends Controller
*/
public function create()
{
return view('usuariosCrearEditar');
$puestos = Puesto::all();
return view('usuariosCrearEditar',['puestos'=> $puestos]);
}
/**
@ -32,6 +34,7 @@ class UsuariosController extends Controller
{
$user = new User(request()->all());
$user->password = bcrypt(request()->password);
$user->save();
return redirect(route('usuarios'));
}

14
app/Models/Auto.php

@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Auto extends Model
{
use HasFactory;
protected $table = 'autos';
protected $fillable = ['marca', 'modelo', 'año', 'color', 'precio'];
}

19
app/Models/Puesto.php

@ -0,0 +1,19 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Puesto extends Model
{
use HasFactory;
protected $table = 'puestos';
protected $fillable = ['nombre'];
public function trabajadores(): hasMany
{
return $this->hasMany(Trabajador::class,'puesto_id','id');
}
}

20
app/Models/Trabajador.php

@ -0,0 +1,20 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasOne;
class Trabajador extends Model
{
use HasFactory;
protected $table = 'trabajadors';
protected $fillable = ['nombre', 'telefono', 'genero', 'sueldo', 'puesto_id', 'numero_seguro', 'correo_electronico'];
public function Puesto(): hasOne
{
return $this->hasOne(Puesto::class,'id','puesto_id');
}
}

7
app/Models/User.php

@ -4,6 +4,7 @@ namespace App\Models;
// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
@ -20,6 +21,7 @@ class User extends Authenticatable
protected $fillable = [
'name',
'email',
'puesto_id',
'password',
];
@ -41,4 +43,9 @@ class User extends Authenticatable
protected $casts = [
'email_verified_at' => 'datetime',
];
public function puesto(): HasOne
{
return $this->hasOne(Puesto::class,'id','puesto_id');
}
}

27
database/factories/AutoFactory.php

@ -0,0 +1,27 @@
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Auto>
*/
class AutoFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition(): array
{
return [
'marca' => $this->faker->randomElement(['Toyota', 'Ford', 'Chevrolet', 'Nissan', 'Honda']),
'modelo' => $this->faker->randomElement(['Corolla', 'F150', 'Camry', 'Altima', 'Civic']),
'año' => $this->faker->year(),
'color' => $this->faker->colorName(),
'precio' => $this->faker->randomFloat(2, 10000, 50000),
];
}
}

29
database/factories/TrabajadorFactory.php

@ -0,0 +1,29 @@
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Trabajador>
*/
class TrabajadorFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition(): array
{
return [
'nombre'=> $this->faker->name,
'telefono'=> $this->faker->phoneNumber(),
'genero'=> $this->faker->randomElement(['Masculino','Femenino']),
'sueldo'=> $this->faker->randomFloat(2, 1000, 100000),
'puesto'=> $this->faker->jobTitle(),
'numero_seguro'=> $this->faker->randomNumber(8),
'correo_electronico'=> $this->faker->email(),
];
}
}

38
database/migrations/2014_09_06_173516_create_puestos_table.php

@ -0,0 +1,38 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('puestos', function (Blueprint $table) {
$table->id();
$table->string('nombre');
$table->timestamps();
});
DB::table('puestos')->insert([
'nombre' => 'Administrador',
]);
DB::table('puestos')->insert([
'nombre' => 'Mesero',
]);
DB::table('puestos')->insert([
'nombre' => 'Cocinero',
]);
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('puestos');
}
};

6
database/migrations/2014_10_12_000000_create_users_table.php

@ -20,6 +20,12 @@ return new class extends Migration
$table->rememberToken();
$table->timestamps();
});
DB::table('users')->insert([
'name' => 'Administrador',
'email' => 'admin@gmail.com',
'password' => bcrypt('admin')
]);
}
/**

32
database/migrations/2025_02_27_155258_create_autos_table.php

@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('autos', function (Blueprint $table) {
$table->id();
$table->string('marca');
$table->string('modelo');
$table->integer('año');
$table->string('color');
$table->decimal('precio', 8, 2);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('autos');
}
};

36
database/migrations/2025_03_06_174749_create_trabajadors_table.php

@ -0,0 +1,36 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use PhpParser\Node\NullableType;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('trabajadors', function (Blueprint $table) {
$table->id();
$table->string('nombre');
$table->string('telefono')->nullable();
$table->string('genero');
$table->decimal('sueldo', 10, 2);
$table->string('numero_seguro');
$table->string('correo_electronico')->nullable();
$table->unsignedBigInteger('puesto_id');
$table->timestamps();
$table->foreign('puesto_id')->references('id')->on('puestos');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('trabajadors');
}
};

31
database/migrations/2025_03_14_184342_add_column_puesto_to_users.php

@ -0,0 +1,31 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('users', function (Blueprint $table) {
//
$table->unsignedBigInteger('puesto_id')->default(1);
$table->foreign('puesto_id')->references('id')->on('puestos');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('users', function (Blueprint $table) {
//
$table->dropColumn('puesto_id');
});
}
};

22
database/migrations/2026_03_21_000000_modify_sueldo_column_in_trabajadors_table.php

@ -0,0 +1,22 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up()
{
Schema::table('trabajadors', function (Blueprint $table) {
$table->decimal('sueldo', 12, 2)->change(); // Permite números más grandes con 2 decimales
});
}
public function down()
{
Schema::table('trabajadors', function (Blueprint $table) {
$table->decimal('sueldo', 8, 2)->change(); // Vuelve al tamaño original si necesitas revertir
});
}
};

17
database/seeders/AutoSeeder.php

@ -0,0 +1,17 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class AutoSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
//
}
}

5
database/seeders/DatabaseSeeder.php

@ -4,7 +4,8 @@ namespace Database\Seeders;
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use App\Models\Trabajador;
use App\Models\Auto;
class DatabaseSeeder extends Seeder
{
/**
@ -12,6 +13,8 @@ class DatabaseSeeder extends Seeder
*/
public function run(): void
{
Trabajador::factory()->count(10)->create();
Auto::factory()->count(10)->create();
// \App\Models\User::factory(10)->create();
// \App\Models\User::factory()->create([

18
database/seeders/TrabajadorSeeder.php

@ -0,0 +1,18 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use App\Models\Trabajador;
class TrabajadorSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
}
}

77
resources/views/autos.blade.php

@ -0,0 +1,77 @@
@extends('layouts.plantilla')
@section('contenido')
<div class="container">
<div class="row">
<div class="col-md-12">
<h1>Autos</h1>
</div>
<div class="row">
<div class="col-md-12">
<a href="{{ route('autos.create') }}" class="btn btn-primary">Agregar Auto</a>
<table class="table table-striped">
<thead>
<tr>
<th>Marca</th>
<th>Modelo</th>
<th>Año</th>
<th>Color</th>
<th>Precio</th>
</tr>
</thead>
<tbody>
@foreach ($autos as $auto)
<tr>
<td>{{ $auto->marca }}</td>
<td>{{ $auto->modelo }}</td>
<td>{{ $auto->año }}</td>
<td>{{ $auto->color }}</td>
<td>{{ $auto->precio }}</td>
<td>
<a href="{{ route('autos.edit', $auto->id) }}" class="btn btn-warning">Editar</a>
<button type="button" class="btn btn-danger" data-bs-toggle="modal" data-bs-target="#confirmDeleteModal" data-id="{{ $auto->id }}">
Eliminar
</button>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="confirmDeleteModal" tabindex="-1" aria-labelledby="confirmDeleteModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="confirmDeleteModalLabel">Confirmar Eliminación</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
¿Estás seguro de que deseas eliminar este auto?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">No</button>
<form id="deleteForm" action="" method="POST" style="display:inline;">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-danger">Sí, eliminar</button>
</form>
</div>
</div>
</div>
</div>
<script>
var confirmDeleteModal = document.getElementById('confirmDeleteModal');
confirmDeleteModal.addEventListener('show.bs.modal', function (event) {
var button = event.relatedTarget;
var autoId = button.getAttribute('data-id');
var form = document.getElementById('deleteForm');
form.action = '/autos/' + autoId;
});
</script>
@endsection

49
resources/views/autosCrearEditar.blade.php

@ -0,0 +1,49 @@
@extends('layouts.plantilla')
@section('contenido')
<div class="content">
<div class="row">
<div class="col-12 pt-5">
@if($auto)
<h1>Editar Auto</h1>
@else
<h1>Crear Auto</h1>
@endif
</div>
<div class="col-12">
@if($auto)
<form action="{{ route('autos.update', $auto->id) }}" method="POST">
@csrf
@method('PUT')
@else
<form action="{{ route('autos.store') }}" method="POST">
@csrf
@endif
<div class="form-group">
<label for="marca" class="form-label">Marca</label>
<input type="text" class="form-control" id="marca" name="marca" value="{{$auto ? $auto->marca : ''}}" placeholder="Ingrese la marca" pattern="[A-Za-z\s]+" title="Solo letras y espacios" required>
</div>
<div class="form-group">
<label for="modelo" class="form-label">Modelo</label>
<input type="text" class="form-control" id="modelo" name="modelo" value="{{$auto ? $auto->modelo : ''}}" placeholder="Ingrese el modelo" pattern="[A-Za-z\s]+" title="Solo letras y espacios" required>
</div>
<div class="form-group">
<label for="año" class="form-label">Año</label>
<input type="number" class="form-control" id="año" name="año" value="{{$auto ? $auto->año : ''}}" placeholder="Ingrese el año" required>
</div>
<div class="form-group">
<label for="color" class="form-label">Color</label>
<input type="color" class="form-control" id="color" name="color" value="{{$auto ? $auto->color : '#000000'}}" required>
</div>
<div class="form-group">
<label for="precio" class="form-label">Precio</label>
<input type="number" step="0.01" class="form-control" id="precio" name="precio" value="{{$auto ? $auto->precio : ''}}" placeholder="Ingrese el precio" required>
</div>
<button type="submit" class="btn btn-primary">Guardar</button>
<a href="{{ route('autos.index') }}" class="btn btn-danger">Cancelar</a>
</form>
</div>
</div>
</div>
@endsection

38
resources/views/layouts/plantilla.blade.php

@ -38,9 +38,47 @@
</body>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous">
</script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="{{asset('js/main.js')}}"></script>
@if(session('success'))
<script>
Swal.fire({
icon: 'success',
title: 'Éxito',
text: '{{ session('success') }}',
timer: 3000,
showConfirmButton: false
});
</script>
@endif
@if(session('warning'))
<script>
Swal.fire({
icon: 'warning',
title: 'Advertencia',
text: '{{ session('warning') }}',
timer: 3000
});
</script>
@endif
@if(session('error'))
<script>
Swal.fire({
icon: 'error',
title: 'Error',
text: '{{ session('error') }}',
timer: 3000,
showConfirmButton: false
});
</script>
@endif
</html>

4
resources/views/layouts/sidebar.blade.php

@ -25,9 +25,9 @@
</div>
</div>
<a href="widget.html" class="nav-item nav-link"><i class="fa fa-th me-2"></i>Widgets</a>
<a href="form.html" class="nav-item nav-link"><i class="fa fa-keyboard me-2"></i>Forms</a>
<a href={{Route('trabajadores.index')}} class="nav-item nav-link"><i class="fa fa-keyboard me-2"></i>Trabajadores</a>
<a href={{Route('usuarios')}} class="nav-item nav-link"><i class="fa fa-table me-2"></i>Usuarios</a>
<a href="chart.html" class="nav-item nav-link"><i class="fa fa-chart-bar me-2"></i>Charts</a>
<a href="{{ route('autos.index') }}" class="nav-item nav-link"><i class="fa fa-car me-2"></i>Autos</a>
<div class="nav-item dropdown">
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown"><i class="far fa-file-alt me-2"></i>Pages</a>
<div class="dropdown-menu bg-transparent border-0">

49
resources/views/trabajadores.blade.php

@ -0,0 +1,49 @@
@extends('layouts.plantilla')
@section('contenido')
<div class="container">
<div class="row">
<div class="col-md-12">
<h1>Trabajadores</h1>
</div>
<div class="row">
<div class="col-md-12">
<a href="{{ route('trabajadores.create') }}" class="btn btn-primary">Agregar Trabajador</a>
<table class="table table-striped">
<thead>
<tr>
<th>Nombre</th>
<th>Teléfono</th>
<th>Género</th>
<th>Sueldo</th>
<th>Puesto</th>
<th>Número de Seguro</th>
<th>Correo Electrónico</th>
<th>Acciones</th>
</tr>
</thead>
<tbody>
@foreach ($trabajadores as $trabajador)
<tr>
<td>{{ $trabajador->nombre }}</td>
<td>{{ $trabajador->telefono }}</td>
<td>{{ $trabajador->genero }}</td>
<td>{{ $trabajador->sueldo }}</td>
<td>{{ $trabajador->Puesto->nombre }}</td>
<td>{{ $trabajador->numero_seguro }}</td>
<td>{{ $trabajador->correo_electronico }}</td>
<td>
<a href="{{ route('trabajadores.edit', $trabajador->id) }}" class="btn btn-warning">Editar</a>
<form action="{{ route('trabajadores.destroy', $trabajador->id) }}" method="POST">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-danger">Eliminar</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection

66
resources/views/trabajadoresCrearEditar.blade.php

@ -0,0 +1,66 @@
@extends('layouts.plantilla')
@section('contenido')
<div class="content">
<div class="row">
<div class="col-12 pt-5">
@if($trabajador)
<h1>Editar Trabajador</h1>
@else
<h1>Crear Trabajador</h1>
@endif
</div>
<div class="col-12">
@if($trabajador)
<form action="{{ route('trabajadores.update', $trabajador->id) }}" method="POST">
@csrf
@method('PUT')
@else
<form action="{{ route('trabajadores.store') }}" method="POST">
@csrf
@endif
<div class="form-group">
<label for="nombre" class="form-label">Nombre</label>
<input type="text" class="form-control" id="nombre" name="nombre" value="{{$trabajador ? $trabajador->nombre : ''}}" placeholder="Ingrese el nombre" required>
</div>
<div class="form-group">
<label for="telefono" class="form-label">Teléfono</label>
<input type="text" class="form-control" id="telefono" name="telefono" value="{{$trabajador ? $trabajador->telefono : ''}}" placeholder="Ingrese el teléfono">
</div>
<div class="form-group">
<label for="genero" class="form-label">Género</label>
<select name="genero" id="genero" class="form-control">
<option value="Masculino" {{$trabajador ? ($trabajador->genero == 'Masculino' ? 'selected' : '') : ''}}>Masculino</option>
<option value="Femenino" {{$trabajador ? ($trabajador->genero == 'Femenino' ? 'selected' : '') : ''}}>Femenino</option>
<option value="Otro" {{$trabajador ? ($trabajador->genero == 'Otro' ? 'selected' : '') : ''}}>Otro</option>
</select>
</div>
<div class="form-group">
<label for="sueldo" class="form-label">Sueldo</label>
<input type="number" step="0.01" class="form-control" id="sueldo" name="sueldo" value="{{$trabajador ? $trabajador->sueldo : ''}}" placeholder="Ingrese el sueldo" required>
</div>
<div class="form-group">
<label for="puesto" class="form-label">Puesto</label>
<select name="puesto_id" id="puesto" class="form-control">
@foreach($puestos as $puesto)
<option value="{{$puesto->id}}" {{$trabajador ? ($trabajador->puesto_id == $puesto->id ? 'selected' : '') : ''}}>{{$puesto->nombre}}</option>
@endforeach
</select>
</div>
<div class="form-group">
<label for="numero_seguro" class="form-label">Número de Seguro</label>
<input type="text" class="form-control" id="numero_seguro" name="numero_seguro" value="{{$trabajador ? $trabajador->numero_seguro : ''}}" placeholder="Ingrese el número de seguro" required>
</div>
<div class="form-group">
<label for="correo_electronico" class="form-label">Correo Electrónico</label>
<input type="email" class="form-control" id="correo_electronico" name="correo_electronico" value="{{$trabajador ? $trabajador->correo_electronico : ''}}" placeholder="Ingrese el correo electrónico">
</div>
<button type="submit" class="btn btn-primary">Guardar</button>
<a href="{{ route('trabajadores.index') }}" class="btn btn-danger">Cancelar</a>
</form>
</div>
</div>
</div>
</div>
@endsection

3
resources/views/usuarios.blade.php

@ -20,8 +20,10 @@
<tr>
<th scope="col">#</th>
<th scope="col">Nombre</th>
<th scope="col">Puesto</th>
<th scope="col">Correo</th>
<th scope="col">Fecha</th>
</tr>
</thead>
<tbody>
@ -29,6 +31,7 @@
<tr>
<th scope="row">{{$item->id}}</th>
<td>{{$item->name}}</td>
<td>{{$item->puesto->nombre}}</td>
<td>{{$item->email}}</td>
<td>{{$item->created_at}}</td>
</tr>

8
resources/views/usuariosCrearEditar.blade.php

@ -18,6 +18,14 @@
<label for="Name" class="form-label">Nombre</label>
<input type="text" class="form-control" id="Name" name="name">
</div>
<div class="mb-3">
<label for="puesto" class="form-label">Puesto</label>
<select class="form-control" id="puesto" name="puesto_id" required>
@foreach ($puestos as $puesto)
<option value="{{$puesto->id}}">{{$puesto->nombre}}</option>
@endforeach
</select>
</div>
<div class="mb-3">
<label for="email" class="form-label">Correo</label>
<input type="email" class="form-control" id="email" name="email">

8
routes/web.php

@ -2,7 +2,8 @@
use App\Http\Controllers\UsuariosController;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\TrabajadorController;
use App\Http\Controllers\AutoController;
/*
|--------------------------------------------------------------------------
| Web Routes
@ -28,6 +29,11 @@ Route::get('/usuarios/nuevo', [UsuariosController::class,'create'])->name('usuar
Route::post('/usuarios/store', [UsuariosController::class,'store'])->name('usuarios.store');
Route::resource('trabajadores', TrabajadorController::class);
Route::resource('autos', AutoController::class);
/*
Route::get('/usuarios', function () {
return view('usuarios');

Loading…
Cancel
Save