diff --git a/app/Http/Controllers/Requests/UpdatedPersonaRequest.php b/app/Http/Controllers/Requests/UpdatedPersonaRequest.php new file mode 100644 index 0000000..f6193d8 --- /dev/null +++ b/app/Http/Controllers/Requests/UpdatedPersonaRequest.php @@ -0,0 +1,45 @@ +|string> + */ + public function rules(): array + { + return [ + 'apellido' => 'required|regex:/^[a-zA-ZáéíóúñÁÉÍÓÚ]+( [a-zA-ZáéíóúñÁÉÍÓÚ]+)*$/|max:20|unique:persona,apellido,' . $this->route('persona') . ',id_persona', + 'nombre' => 'required|regex:/^[a-zA-ZáéíóúñÁÉÍÓÚ]+( [a-zA-ZáéíóúñÁÉÍÓÚ]+)*$/|max:20|unique:persona,nombre,' . $this->route('persona') . ',id_persona', + 'dni' => 'required' + ]; + } + + public function messages() { + + return [ + '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' + ]; + } +} diff --git a/app/Http/Controllers/personacontroller.php b/app/Http/Controllers/personacontroller.php index 9f55df8..f4ec1e9 100644 --- a/app/Http/Controllers/personacontroller.php +++ b/app/Http/Controllers/personacontroller.php @@ -5,16 +5,15 @@ 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(); + public function index(Request $request){ - return view('personas.index',["personas"=>$persona]); + $persona = Persona::withTrashed()->get(); - // $categorias = Categorias::findOrFail(13); + // $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(); @@ -24,6 +23,9 @@ class PersonaController extends Controller //$categorias = Categorias::first(); //$categorias = Categorias::last(); /*Categorias::count();*/ + + + return view('personas.index', ["persona"=>$persona]); } public function show($id){ $persona = Persona::findOrfail($id); @@ -33,6 +35,7 @@ class PersonaController extends Controller public function destroy(Request $request, $id){ $persona = Persona::findOrfail($id); $persona->delete(); + $request->session()->flash('mensaje-success', 'La persona fue eliminada.'); return redirect('/personas'); } @@ -43,13 +46,35 @@ class PersonaController extends Controller 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'), + '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'); } @@ -62,48 +87,21 @@ class PersonaController extends Controller public function update(Request $request, $id){ $persona = Persona::findOrfail($id); $persona->fill([ - 'apellido' => $request->input('apellido'), + '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'); } -/* - - - - public function show($id){ - $categorias = Categorias::findOrfail($id); - - return view('categorias.show', ["cat"=>$categorias]); - } - - - public function edit($id){ - $categorias = Categorias::findOrfail($id); - return view('categorias.edit', ["cat"=>$categorias]); - } - - - public function update(Request $request, $id){ - $categorias = Categorias::findOrfail($id); - $categorias->fill([ - 'nombre' => $request->input('nombre'), - 'descripcion' => $request->input('descripcion'), - ]); - $categorias->update(); - return redirect('/categorias'); - } - - - */ } diff --git a/resources/views/compartido/errores.blade.php b/resources/views/compartido/errores.blade.php new file mode 100644 index 0000000..16ff22c --- /dev/null +++ b/resources/views/compartido/errores.blade.php @@ -0,0 +1,9 @@ +@if ($errors->any()) +
{{ 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..501b587 --- /dev/null +++ b/resources/views/layouts/admin.blade.php @@ -0,0 +1,103 @@ + + + + + + + + + +