mjarillo/app/Http/Controllers/personacontroller.php
2026-09-06 20:29:11 -03:00

109 lines
3.9 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\RedirectResponse;
use App\Models\Persona;
use App\Http\Requests\UpdatedPersonaRequest;
class PersonaController extends Controller
{
public function index(Request $request){
$persona = Persona::withTrashed()->get();
// $categorias = Categorias::findOrFail(13);
//$cat = Categorias::where('id_categoria', 1)->first();
//$categorias = Categorias::where('descripcion', 'Cursos, capacitaciones y formación')->get();
//$categorias = Categorias::where('descripcion', 'like', '%Prod%')->get();
//$categorias = Categorias::orderBy('nombre', 'desc')->get();
//$categorias = Categorias::first();
//$categorias = Categorias::last();
/*Categorias::count();*/
return view('personas.index', ["persona"=>$persona]);
}
public function show($id){
$persona = Persona::findOrfail($id);
$persona-> formatear_texto();
return view('personas.show', ["per"=>$persona]);
}
public function destroy(Request $request, $id){
$persona = Persona::findOrfail($id);
$persona->delete();
$request->session()->flash('mensaje-success', 'La persona fue eliminada.');
return redirect('/personas');
}
public function create(){
return view('personas.new');
}
public function store(Request $request){
$request->validate([
'apellido' => 'required|regex:/^[a-zA-ZáéíóúñÁÉÍÓÚ]+( [a-zA-ZáéíóúñÁÉÍÓÚ]+)*$/|max:20|unique:persona,apellido',
'nombre' => 'required|regex:/^[a-zA-ZáéíóúñÁÉÍÓÚ]+( [a-zA-ZáéíóúñÁÉÍÓÚ]+)*$/|max:20|unique:persona,nombre',
'dni' => 'required|numeric|digits_between:7,8',
],
[
'apellido.required' => 'el campo apellido es requerido',
'apellido.regex' => 'el campo apellido solo debe contener letras',
'apellido.max' => 'el campo apellido debe contener un maximo de 20 caracteres',
'apellido.unique' => 'ya existe este apellido',
'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 este nombre',
'dni' => 'el campo dni es requerido',
'dni' => 'el campo dni debe contener solo numeros',
'dni' => 'el campo dni debe contener un maximo de 8 caracteres',
]
);
$persona = new Persona();
$persona->fill([
'apellido'=> $request->input('apellido'),
'nombre' => $request->input('nombre'),
'dni' => $request->input('dni'),
]);
$persona->save();
$request->session()->flash('mensaje-success', 'La persona fue agregada.');
return redirect('/personas');
}
public function edit($id){
$persona = Persona::findOrfail($id);
//$categoria = Categorias::where('id_categoria',$id)->first();
return view('personas.edit', ["per"=>$persona]);
}
public function update(Request $request, $id){
$persona = Persona::findOrfail($id);
$persona->fill([
'apellido'=> $request->input('apellido'),
'nombre' => $request->input('nombre'),
'dni' => $request->input('dni'),
]);
$persona->update();
$request->session()->flash('mensaje-success', 'La persona fue modificada.');
return redirect('/personas');
}
public function restaurar(Request $request, $id){
$persona = Persona::withTrashed()->findOrfail($id);
$persona->restore();
$request->session()->flash('mensaje-success', 'La persona fue restaurada.');
return redirect('/personas');
}
}