diff --git a/app/Http/Controllers/PersonaController.php b/app/Http/Controllers/PersonaController.php
index aa2c63f..73d7dda 100644
--- a/app/Http/Controllers/PersonaController.php
+++ b/app/Http/Controllers/PersonaController.php
@@ -1,29 +1,72 @@
get();
return view('personas.index', compact('personas'));
}
+
+ public function show($id){
+ $personas = PersonaModel::findOrfail($id);
+ return view('personas.show', ["per"=>$personas]);
+ }
+
+ public function edit($id){
+ $personas = PersonaModel::findOrfail($id);
+ return view('personas.edit', ["per"=>$personas]);
+ }
+
+ public function update(Request $request, $id){
+ $personas = PersonaModel::findOrfail($id);
+
+ $personas->fill([
+ 'nombre' => $request->input('nombre'),
+ 'apellido' => $request->input('apellido'),
+ 'dni' => $request->input('dni'),
+ ]);
+
+ $personas->update();
+
+ return redirect('/personas');
+ }
+
+ public function destroy(Request $request, $id){
+ $personas = PersonaModel::findOrfail($id);
+ $personas->delete();
+
+ return redirect('/personas');
+ }
+
+ public function create(){
+ return view('personas.new');
+ }
+
+ public function store(Request $request){
+
+ $persona = new PersonaModel();
+
+ $persona->fill([
+ 'nombre' => $request->input('nombre'),
+ 'apellido' => $request->input('apellido'),
+ 'dni' => $request->input('dni'),
+ ]);
+
+ $persona->save();
+
+ return redirect('/personas');
+ }
+
+ public function restaurar(Request $request, $id){
+ $personas = PersonaModel::withTrashed()->findOrfail($id);
+ $personas->restore();
+ $request->session()->flash('mensaje-success', 'La persona fue restaurada.');
+ return redirect('/personas');
+
+ }
}
-
-
-
- /* $persona = Categoria::findOrFail(1);
- $categorias = Categoria::where('id_categoria', 1)->get();
- $categorias = Categoria::where('nombre', 'Tecnología')->get();
- $categorias = Categoria::where('nombre', 'like', '%tec%')->get();
- $categorias = Categoria::orderBy('nombre', 'asc')->get();
- $categorias = Categoria::first();
- $categorias = Categoria::last();
- Categoria::count();*/
-
-
-
diff --git a/app/Http/Requests/StorePersonaRequest.php b/app/Http/Requests/StorePersonaRequest.php
new file mode 100644
index 0000000..194b69d
--- /dev/null
+++ b/app/Http/Requests/StorePersonaRequest.php
@@ -0,0 +1,28 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ //
+ ];
+ }
+}
diff --git a/app/Http/Requests/UdatedPersonaRequest.php b/app/Http/Requests/UdatedPersonaRequest.php
new file mode 100644
index 0000000..e68f65e
--- /dev/null
+++ b/app/Http/Requests/UdatedPersonaRequest.php
@@ -0,0 +1,40 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ 'nombre' => 'required|regex:/^[a-zA-ZáéíóúñÁÉÍÓÚ]+( [a-zA-ZáéíóúñÁÉÍÓÚ]+)*$/|max:20|unique:personas,nombre,' . $this->route('persona') . ',id_persona',
+ 'descripcion' => 'required'
+ ];
+ }
+
+ public function messages() {
+
+ return [
+ 'nombre.required' => 'el campo nombre es requerido',
+ 'nombre.regex' => 'el campo nombre solo debe contener letras',
+ 'nombre.max' => 'el campo nombre debe contener un maximo de 20 caracteres',
+ 'nombre.unique' => 'ya existe una persona con este nombre',
+ 'descripcion' => 'el campo descripcion es requerido'
+ ];
+ }
+}
diff --git a/app/Models/PersonaModel.php b/app/Models/PersonaModel.php
index f8d97f6..1b82381 100644
--- a/app/Models/PersonaModel.php
+++ b/app/Models/PersonaModel.php
@@ -4,12 +4,21 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
-
+use Illuminate\Database\Eloquent\SoftDeletes;
class PersonaModel extends Model
{
+
use HasFactory;
+ use SoftDeletes;
protected $table = 'persona'; // nombre de la tabla
protected $primaryKey = 'id_persona'; // clave primaria
- public $timestamps = false;
+ public $timestamps = true;
+
+protected $fillable = [
+ 'nombre',
+ 'apellido',
+ 'dni',
+
+ ];
}
diff --git a/resources/views/compartido/errores.blade.php b/resources/views/compartido/errores.blade.php
new file mode 100644
index 0000000..c203932
--- /dev/null
+++ b/resources/views/compartido/errores.blade.php
@@ -0,0 +1,9 @@
+@if ($errors->any())
+
+
+ @foreach ($errors->all() as $error)
+ {{ $error }}
+ @endforeach
+
+
+@endif
diff --git a/resources/views/compartido/mensajes.blade.php b/resources/views/compartido/mensajes.blade.php
new file mode 100644
index 0000000..8b0ba24
--- /dev/null
+++ b/resources/views/compartido/mensajes.blade.php
@@ -0,0 +1,3 @@
+@if (session('mensaje-success'))
+ {{ session('mensaje-success') }}
+@endif
\ No newline at end of file
diff --git a/resources/views/layouts/admin.blade.php b/resources/views/layouts/admin.blade.php
new file mode 100644
index 0000000..312520c
--- /dev/null
+++ b/resources/views/layouts/admin.blade.php
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+ @yield('title','Sistema Taller')
+
+
+
+
+
+
+
+
+
+
+ @stack('styles')
+
+
+
+
+
+
+
+
+
+
+
+ MiApp
+
+
+
+
+
+
+
+
+
+
+ @yield('contenido')
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @stack('scripts')
+
+
diff --git a/resources/views/personas/edit.blade.php b/resources/views/personas/edit.blade.php
new file mode 100644
index 0000000..1857d43
--- /dev/null
+++ b/resources/views/personas/edit.blade.php
@@ -0,0 +1,86 @@
+@extends('layouts.admin')
+@section('contenido')
+
+
+
+
+
+
+
+ @include('compartido.mensajes')
+ @include('compartido.errores')
+
+
+
+
+
+
+
+@endsection
+
+@push('scripts')
+
+@endpush
diff --git a/resources/views/personas/editPlano.blade.php b/resources/views/personas/editPlano.blade.php
new file mode 100644
index 0000000..6ab6b8c
--- /dev/null
+++ b/resources/views/personas/editPlano.blade.php
@@ -0,0 +1,41 @@
+
+
+
+
+
+ Editar Persona
+
+
+
+Editar Persona
+
+
+
+
+
diff --git a/resources/views/personas/index.blade.php b/resources/views/personas/index.blade.php
index d740dc3..a022084 100644
--- a/resources/views/personas/index.blade.php
+++ b/resources/views/personas/index.blade.php
@@ -1,18 +1,130 @@
-
-
-
- Persona
-
-
-
- @foreach($personas as $per)
-
- {{ $per->apellido }}
- {{ $per->nombre }}
- {{ $per->dni }}
- (ID: {{ $per->id_persona}})
-
- @endforeach
-
-
-
+@extends('layouts.admin')
+@section('contenido')
+
+
+
+
+
+
+
Listado de Personas
+
+
+
+
+
+
+
+
+
+
+
+ @include('compartido.mensajes')
+ @include('compartido.errores')
+
+
+
+
+
+
+
+
+ Id
+ Nombre
+ Apellido
+ dni
+ Acciones
+
+
+
+ @foreach($personas as $per)
+
+ {{ $per->id_persona }}
+ {{ $per->apellido }}
+ {{ $per->nombre }}
+ {{ $per->dni }}
+
+
+ @if($per->deleted_at == null)
+
+ @else
+
+
+ @endif
+
+
+ @endforeach
+
+
+
+
+
+
+
+@endsection
+@push('styles')
+
+@endpush
+@push('scripts')
+
+@endpush
diff --git a/resources/views/personas/indexPlano.blade.php b/resources/views/personas/indexPlano.blade.php
new file mode 100644
index 0000000..a205e60
--- /dev/null
+++ b/resources/views/personas/indexPlano.blade.php
@@ -0,0 +1,52 @@
+
+
+
+ Personas
+
+
+
+ Nueva persona
+
+
+ @foreach($personas as $persona)
+
+ {{ $persona->nombre }}
+ — {{ $persona->apellido }}
+ — {{ $persona->dni }}
+ (ID: {{ $persona->id_persona }})
+ |
+ @if($persona->deleted_at == null)
+ Ver Más
+ |
+ Editar
+
+
+ @else
+
+
+ @endif
+
+ {{--Editar
+ --}}
+
+
+
+ @endforeach
+
+
+
+
diff --git a/resources/views/personas/new.blade.php b/resources/views/personas/new.blade.php
new file mode 100644
index 0000000..daa67d6
--- /dev/null
+++ b/resources/views/personas/new.blade.php
@@ -0,0 +1,81 @@
+@extends('layouts.admin')
+@section ('contenido')
+
+
+
+
+
+
+
+ @include('compartido.mensajes')
+ @include('compartido.errores')
+
+
+
+
+
+
+
+@endsection
+
+@push('scripts')
+
+@endpush
diff --git a/resources/views/personas/newPlano.blade.php b/resources/views/personas/newPlano.blade.php
new file mode 100644
index 0000000..8a2d7bc
--- /dev/null
+++ b/resources/views/personas/newPlano.blade.php
@@ -0,0 +1,40 @@
+
+
+
+
+
+ Nueva Persona
+
+
+
+Nueva Persona
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/views/personas/show.blade.php b/resources/views/personas/show.blade.php
new file mode 100644
index 0000000..778ac41
--- /dev/null
+++ b/resources/views/personas/show.blade.php
@@ -0,0 +1,34 @@
+@extends('layouts.admin')
+@section ('contenido')
+
+
+
+
+
+
+
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/personas/showPlano.blade.php b/resources/views/personas/showPlano.blade.php
new file mode 100644
index 0000000..bedfc4b
--- /dev/null
+++ b/resources/views/personas/showPlano.blade.php
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ Ver persona
+
+
+
+Detalle de la persona
+
+
+ Apellido:
+
+
+
+
+ Nombre:
+
+
+
+
+ DNI:
+
+
+
+
+
+ Volver al listado
+
+
+
+
+
+
diff --git a/routes/web.php b/routes/web.php
index 30ebefc..2dcdbfe 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -20,4 +20,14 @@ Route::get('/', function () {
return view('welcome');
});
-Route::get('persona', [PersonaController::class, 'index'])->name('persona.index');
+/*Route::get('persona', [PersonaController::class, 'index'])->name('personas.index');
+Route::get('persona/create', [PersonaController::class, 'create'])->name('personas.create');
+Route::get('persona/{persona}', [PersonaController::class, 'show'])->name('personas.show');
+Route::get('persona/{persona}/edit', [PersonaController::class, 'edit'])->name('personas.edit');
+Route::put('persona/{persona}', [PersonaController::class, 'update'])->name('personas.update');
+Route::delete('persona/{persona}', [PersonaController::class, 'destroy'])->name('personas.destroy');
+Route::post('persona', [PersonaController::class, 'store'])->name('personas.store');*/
+Route::put('personas/restaurar/{persona}', [PersonaController::class, 'restaurar'])->name('personas.restaurar');
+Route::resource('personas', PersonaController::class);
+
+