validate([ 'nombre' => 'required' ]); $evento = new Evento(); $evento->nombre = $request->input("nombre"); $evento->setSlug(); $evento->save(); return redirect()->route("edit", ['evento' => $evento]); } /** * Display the specified resource. * * @param Evento $evento * @return Application|Factory|View|Response */ public function show(Evento $evento) { // evento->coordinar devuelve los tres mejores marzullos de los días que tiene asociados // dia->marzullo devuelve array de // [dia::string, cantidad::integer, inicio::integer, fin::integer, duracion::integer // inicioLindo::string, finLindo::string, duracionLinda::string] $marzullos = $evento->coordinar(); return view("resultado", ['marzullos' => $marzullos, 'evento' => $evento]); } /** * Show the form for editing the specified resource. * * @param Evento $evento * @return Application|Factory|View|Response */ public function edit(Evento $evento) { return view("edit", ['evento' => $evento]); } /** * Update the specified resource in storage. * * @param Request $request * @param Evento $evento * @return RedirectResponse */ public function update(Request $request, Evento $evento) { // Validación. request()->validate([ 'dia' => 'array', 'dia.*' => 'required|string|max:100', 'salida' => 'array', 'llegada.*' => 'required|date_format:H:i', 'llegada' => 'array', 'salida.*' => 'required|date_format:H:i|after:llegada.*' ],[ 'salida.*.after' => 'La hora de llegada debe ser anterior a la de salida.' ]); // Adición de días y horas. foreach ($request->input('dia') as $i => $dia) { // Busqueda en la lista de días del evento, y adición en su defecto. $diaNombre = strtolower(trim($dia)); // ¿HACER FUNCIÓN PARA NORMALIZAR NOMBRES? $arrayAux = $evento->dias()->where('nombre',$diaNombre)->get(); $diaID = null; if ($arrayAux->count() == 0) { $nuevo = new Dia(['nombre' => $diaNombre]); $nuevo->evento_id = $evento->id; $nuevo->save(); $diaID = $nuevo->id; } else { $diaID = $arrayAux[0]->id; } // Creación de hora_flags ingresados para cada día. $llegadaDia = new HoraFlag([ 'dia_id' => $diaID, 'minutoDelDia' => Utils::formatMinutos($request->input('llegada')[$i]), 'flag' => 1 ]); $salidaDia = new HoraFlag([ 'dia_id' => $diaID, 'minutoDelDia' => Utils::formatMinutos($request->input('salida')[$i]), 'flag' => -1 ]); // Adición de hora_flags ingresados para cada día. $llegadaDia->save(); $salidaDia->save(); } return redirect()->route("show", ['evento' => $evento]); } /** * Remove the specified resource from storage. * * @param Evento $evento * @return Response */ public function destroy(Evento $evento) { // } public function mostrarResultado(Request $request) { return redirect()->route('show',['evento' => Evento::find($request->id)]); } }