mis_turnos/app/Http/Controllers/PersonaController.php

102 lines
3.3 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){
$personas = Persona::withTrashed()->get();
// $personas = Persona::findOrFail(13);
//$per = Persona::where('id', 1)->first();
//$personas = Persona::where('apellido', 'Cursos, capacitaciones y formación')->get();
//$personas = Persona::where('apellido', 'like', '%Prod%')->get();
//$personas = Persona::orderBy('nombre', 'desc')->get();
//$personas = Persona::first();
//$personas = Persona::last();
/*Persona::count();*/
return view('personas.index', ["personas"=>$personas]);
}
public function show($id){
$persona = Persona::findOrfail($id);
return view('personas.show', ["per"=>$persona]);
}
public function destroy(Request $request, $id){
$personas = Persona::findOrfail($id);
$personas->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|max:100',
'nombre' => 'required|unique:personas,nombre|regex:/^[a-zA-ZáéíóúñÁÉÍÓÚ]+( [a-zA-ZáéíóúñÁÉÍÓÚ]+)*$/|max:100',
//'dni' => 'required|numeric|digits_between:7,8',
],
[
'apellido.required' => 'el campo apellido debe ser requerido',
'apellido.max' => 'el campo apellido debe contener maximo 100 caracteres',
'nombre.required' => 'el campo nombre es requerido',
'nombre.unique' => 'el campo nombre no se puede repetir',
'nombre.regex' => 'el campo nombre solo debe contener letras',
'nombre.max' => 'el campo nombre debe contener un maximo de 100 caracteres',
]
);
$personas = new Persona();
$personas->fill([
'nombre' => $request->input('nombre'),
'apellido' => $request->input('apellido'),
]);
$personas->save();
$request->session()->flash('mensaje-success', 'La persona fue agregada.');
return redirect('/personas');
}
public function edit($id){
$persona = Persona::findOrfail($id);
//$persona = Persona::where('id',$id)->first();
return view('personas.edit', ["per"=>$persona]);
}
public function update(UpdatedPersonaRequest $request, $id){
$personas = Persona::findOrfail($id);
$personas->fill([
'nombre' => $request->input('nombre'),
'apellido' => $request->input('apellido'),
]);
$personas->update();
$request->session()->flash('mensaje-success', 'La persona fue modificada.');
return redirect('/personas');
}
public function restaurar(Request $request, $id){
$personas = Persona::withTrashed()->findOrfail($id);
$personas->restore();
$request->session()->flash('mensaje-success', 'La persona fue restaurada.');
return redirect('/personas');
}
}