editar, eliminar y restaurar personal

This commit is contained in:
Silvia Moya 2026-06-02 16:59:53 -03:00
parent 336cba0d1d
commit 080d2e9046
7 changed files with 269 additions and 3 deletions

View File

@ -3,8 +3,68 @@
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\RedirectResponse;
use App\Models\personal;
class personalController extends Controller
{
//
public function index(Request $request){
$personal = personal::withTrashed()-> get();
return view('personal.index', ['personal'=>$personal]);
}
public function show($id){
$personal = personal::findOrfail($id);
return view('personal.show', ["per"=>$personal]);
}
public function destroy(Request $request, $id){
$personal = personal::findOrfail($id);
$personal->delete();
return redirect('/personal');
}
public function create(){
return view('personal.new');
}
public function store(Request $request){
$personal = new personal();
$personal->fill([
'nombre' => $request->input('nombre'),
'apellido' => $request->input('apellido'),
'dni' => $request->input('dni'),
'domicilio' => $request->input('domicilio'),
]);
$personal->save();
return redirect('/personal');
}
public function edit($id){
$personal = personal::findOrfail($id);
return view('personal.edit', ["per"=>$personal]);
}
public function update(Request $request, $id){
$personal = personal::findOrfail($id);
$personal->fill([
'nombre' => $request->input('nombre'),
'apellido' => $request->input('apellido'),
'dni' => $request->input('dni'),
'domicilio' => $request->input('domicilio'),
]);
$personal->update();
return redirect('/personal');
}
public function restaurar(Request $request, $id){
$cpersonal = personal::withTrashed()->findOrfail($id);
$personal->restore();
return redirect('/personal');
}
}

View File

@ -4,8 +4,21 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class personal extends Model
{
use HasFactory;
use SoftDeletes;
protected $table = 'personal';
public $primaryKey = 'id_personal';
public $timestamps = true;
protected $fillable = [
'nombre',
'apellido',
'dni',
'domicilio',
];
}

View File

@ -0,0 +1,48 @@
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Editar personal</title>
</head>
<body>
<h1>Editar datos de personal</h1>
<form method="POST" action="{{ route('personal.update', $per->id_personal) }}">
@csrf
@method('PUT')
<div>
<label for="nombre">Nombre *</label><br>
<input id="nombre" name="nombre" type="text"
value="{{ old('nombre', $per->nombre) }}" required>
</div>
<div style="margin-top:8px;">
<label for="apellido">Apellido</label><br>
<input id="apellido" name="apellido" type="text"
value="{{ old('apellido', $per->apellido) }}">
</div>
<div style="margin-top:8px;">
<label for="dni">DNI</label><br>
<input id="dni" name="dni" type="text"
value="{{old ('dni', $per->dni ) }}">
</div>
<div style="margin-top:8px;">
<label for="domicilio">Domicilio</label><br>
<input id="domicilio" name="domicilio" type="text"
value="{{ old ('domicilio', $per->domicilio) }}">
</div>
<div style="margin-top:12px;">
<button type="submit">Guardar</button>
<a href="{{ route('personal.index') }}">Volver al listado</a>
</div>
</form>
</body>
</html>

View File

@ -0,0 +1,48 @@
<!doctype html>
<html lang="es">
<head>
<title>Personal policial</title>
</head>
<body>
<p>
<a href="{{ route('personal.create') }}"><button> Nuevo personal </button></a>
</p>
<ul>
@foreach($personal as $per)
<li>
<strong>{{ $per->nombre }}</strong>
{{ $per->apellido }}
{{ $per->dni }}
{{ $per->domicilio }}
(ID: {{ $per->id_personal}})
&nbsp;|&nbsp;
@if($per->trashed())
<form action="{{ route('personal.restaurar', $per->id_personal) }}"
method="POST" >
@csrf
@method('PUT')
<button type="submit" onclick="return confirm('¿Restaurar esta persona?')">
Restaurar
</button>
</form>
@else
<a href="{{ route('personal.show', $per->id_personal) }}"><button> VER MÁS </button></a>
<a href="{{ route('personal.edit', $per->id_personal) }}"><button> EDITAR </button></a>
<form action="{{ route('personal.destroy', $per->id_personal) }}"
method="POST" >
@csrf
@method('DELETE')
<button type="submit" onclick="return confirm('¿Eliminar esta persona?')">
Eliminar
</button>
</form>
{{--<a href="{{ route('personal.edit', $per->id_personal) }}">Editar</a>
--}}
@endif
</li>
@endforeach
</ul>

View File

@ -0,0 +1,43 @@
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Agresar personal</title>
</head>
<body>
<h1>Nuevo personal</h1>
<form method="POST" action="{{ route('personal.store') }}">
@csrf
<div>
<label for="nombre">Nombre *</label><br>
<input id="nombre" name="nombre" type="text" value="{{ old('nombre') }}" required>
</div>
<div style="margin-top:8px;">
<label for="apellido">Apellido</label><br>
<input id="apellido" name="apellido" type="text" value="{{ old('apellido') }}">
</div>
<div style="margin-top:8px;">
<label for="dni">DNI</label><br>
<input id="dni" name="dni" type="text" value="{{ old('dni') }}">
</div>
<div style="margin-top:8px;">
<label for="domicilio">Domicilio</label><br>
<input id="domicilio" name="domicilio" type="text" value="{{ old('domicilio') }}">
</div>
<div style="margin-top:12px;">
<button type="submit">Guardar</button>
<a href="{{ route('personal.index') }}">Volver al listado</a>
</div>
</form>
</body>
</html>

View File

@ -0,0 +1,43 @@
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Ver personal</title>
</head>
<body>
<h1>Ver personal</h1>
<div>
<label for="nombre">Nombre *</label><br>
<input id="nombre" name="nombre" readonly type="text"
value="{{ $per->nombre }}" >
</div>
<div style="margin-top:8px;">
<label for="apellido">Apellido</label><br>
<input id="apellido" readonly name="apellido" type="text"
value="{{ $per->apellido }}">
</div>
<div style="margin-top:8px;">
<label for="dni">DNI</label><br>
<input id="dni" readonly name="dni" type="text"
value="{{ $per->dni }}">
</div>
<div style="margin-top:8px;">
<label for="domicilio">Domicilio</label><br>
<input id="domicilio" readonly name="domicilio" type="text"
value="{{ $per->domicilio }}">
</div>
<div style="margin-top:12px;">
<a href="{{ route('personal.index') }}">Volver al listado</a>
</div>
</body>
</html>

View File

@ -1,7 +1,7 @@
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\personalController;
/*
|--------------------------------------------------------------------------
| Web Routes
@ -14,5 +14,16 @@ use Illuminate\Support\Facades\Route;
*/
Route::get('/', function () {
return view('welcome');
return view('welcome');
});
Route::resource('personal', personalController::class);
Route::put('personal/restaurar/{personal}', [personalController::class, 'restaurar'])->name('personal.restaurar');
/*Route::get('personal', [personalController::class, 'index'])->name('personal.index');
Route::post('personal', [personalController::class, 'store'])->name('personal.store');
Route::get('personal/create', [personalController::class, 'create'])->name('personal.create');
Route::get('personal/{personal}', [personalController::class, 'show'])->name('personal.show');
Route::delete('personal/{personal}', [personalController::class, 'destroy'])->name('personal.destroy');
Route::get('personal/{personal}/edit', [personalController::class, 'edit'])->name('personal.edit');
Route::put('personal/{personal}', [personalController::class, 'update'])->name('personal.update');*/