108 lines
3.9 KiB
PHP
108 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);
|
|
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');
|
|
}
|
|
|
|
|
|
}
|