From 8bd197dd42e476d657339dd5ee9f22a6a899ee5e Mon Sep 17 00:00:00 2001 From: Adrian Tejeda Date: Wed, 20 May 2026 12:48:07 -0300 Subject: [PATCH] Agrego Crear y Editar personas --- app/Http/Controllers/PersonaController.php | 66 ++++++++++++++++++- app/Models/Persona.php | 19 +++--- resources/views/personas/edit.blade.php | 48 ++++++++++++++ resources/views/personas/index.blade.php | 74 +++++++++++++++++----- resources/views/personas/new.blade.php | 58 +++++++++++++++++ resources/views/personas/show.blade.php | 47 ++++++++++++++ routes/web.php | 23 +++++-- 7 files changed, 301 insertions(+), 34 deletions(-) create mode 100644 resources/views/personas/edit.blade.php create mode 100644 resources/views/personas/new.blade.php create mode 100644 resources/views/personas/show.blade.php diff --git a/app/Http/Controllers/PersonaController.php b/app/Http/Controllers/PersonaController.php index aa45667..4053e66 100644 --- a/app/Http/Controllers/PersonaController.php +++ b/app/Http/Controllers/PersonaController.php @@ -7,14 +7,74 @@ use App\Models\Persona; class PersonaController extends Controller { - public function index(Request $request){ + public function index() + { $personas = Persona::all(); - return view('personas.index', ["personas" => $personas]); + + return view('personas.index', [ + "personas" => $personas + ]); } - public function destroy(Request $request, $id){ + public function show($id) + { $persona = Persona::findOrFail($id); + + return view('personas.show', [ + "persona" => $persona + ]); + } + + public function create() + { + return view('personas.new'); + } + + public function store(Request $request) + { + $persona = new Persona(); + + $persona->fill([ + 'nombre' => $request->input('nombre'), + 'apellido' => $request->input('apellido'), + 'dni' => $request->input('dni'), + ]); + + $persona->save(); + + return redirect('/personas'); + } + + public function edit($id) + { + $persona = Persona::findOrFail($id); + + return view('personas.edit', [ + "persona" => $persona + ]); + } + + public function update(Request $request, $id) + { + $persona = Persona::findOrFail($id); + + $persona->fill([ + 'nombre' => $request->input('nombre'), + 'apellido' => $request->input('apellido'), + 'dni' => $request->input('dni'), + ]); + + $persona->update(); + + return redirect('/personas'); + } + + public function destroy($id) + { + $persona = Persona::findOrFail($id); + $persona->delete(); + return redirect('/personas'); } } \ No newline at end of file diff --git a/app/Models/Persona.php b/app/Models/Persona.php index aa41867..2adb342 100644 --- a/app/Models/Persona.php +++ b/app/Models/Persona.php @@ -5,19 +5,20 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; -class persona extends Model +class Persona extends Model { use HasFactory; -protected $table = 'Persona'; + protected $table = 'personas'; -public $primarykey = 'id_persona'; + protected $primaryKey = 'id'; -public $timestamps = false; -protected $fillable = [ - 'apellido', - 'nombre', - 'dni', -]; + public $timestamps = false; + protected $fillable = [ + 'nombre', + 'apellido', + 'dni', + ]; } + diff --git a/resources/views/personas/edit.blade.php b/resources/views/personas/edit.blade.php new file mode 100644 index 0000000..77d2e71 --- /dev/null +++ b/resources/views/personas/edit.blade.php @@ -0,0 +1,48 @@ + + + + + + Editar Persona + + + + +

Editar Persona

+ +
+ + @csrf + @method('PUT') + +

+ Nombre: + +

+ +

+ Apellido: + +

+ +

+ DNI: + +

+ + + +
+ + + + \ No newline at end of file diff --git a/resources/views/personas/index.blade.php b/resources/views/personas/index.blade.php index 77ec0da..8099dc6 100644 --- a/resources/views/personas/index.blade.php +++ b/resources/views/personas/index.blade.php @@ -1,28 +1,68 @@ + - Persona + + Personas + - + + \ No newline at end of file diff --git a/resources/views/personas/new.blade.php b/resources/views/personas/new.blade.php new file mode 100644 index 0000000..8b5bd90 --- /dev/null +++ b/resources/views/personas/new.blade.php @@ -0,0 +1,58 @@ + + + + + + Nueva Persona + + + + +

Nueva Persona

+ +
+ + @csrf + +
+
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+ + + + + Volver + + +
+ +
+ + + + diff --git a/resources/views/personas/show.blade.php b/resources/views/personas/show.blade.php new file mode 100644 index 0000000..b941366 --- /dev/null +++ b/resources/views/personas/show.blade.php @@ -0,0 +1,47 @@ + + + + + + Ver Persona + + + + +

Ver Persona

+ +
+
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+ + + Volver + + +
+ + + + diff --git a/routes/web.php b/routes/web.php index b9ca2a9..da46463 100644 --- a/routes/web.php +++ b/routes/web.php @@ -3,10 +3,23 @@ use Illuminate\Support\Facades\Route; use App\Http\Controllers\PersonaController; -Route::get('/', function () { - return view('welcome'); -}); +Route::get('personas', [PersonaController::class, 'index']) + ->name('personas.index'); -Route::get('personas', [PersonaController::class, 'index'])->name('persona.index'); +Route::get('personas/create', [PersonaController::class, 'create']) + ->name('personas.create'); -Route::delete('personas/{persona}', [PersonaController::class, 'destroy'])->name('persona.destroy'); \ No newline at end of file +Route::post('personas', [PersonaController::class, 'store']) + ->name('personas.store'); + +Route::get('personas/{persona}', [PersonaController::class, 'show']) + ->name('personas.show'); + +Route::get('personas/edit/{persona}', [PersonaController::class, 'edit']) + ->name('personas.edit'); + +Route::put('personas/update/{persona}', [PersonaController::class, 'update']) + ->name('personas.update'); + +Route::delete('personas/{persona}', [PersonaController::class, 'destroy']) + ->name('personas.destroy'); \ No newline at end of file