/** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $userid = \Auth::id(); $recipe = \App\Recipe::findOrFail($id); $starredList = \App\Recipe::whereHas('users', function ($q) use($userid) { $q->where('users.id', '=', $userid); //echo'here'; })->get(); $ingredients = $recipe->ingredients()->get(); return \View::make('recipes.show')->withRecipe($recipe)->withStarredRecipe($starredList)->withIngredients($ingredients); }
/** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $recipe = Recipe::findOrFail($id); $recipe->destroy($id); return redirect('/recipes'); }
public function processUpdate(Request $request, $recipe_id) { //validate user inputs. we need at least 1 ingredient, title and procedure $rules = ['data.title' => 'required', 'data.procedure' => 'required', 'data.ingred' => 'required_without:data.newIngred']; $messages = ['data.title.required' => 'Il titolo è richiesto!', 'data.procedure.required' => 'La procedura per la preparazione della ricetta è obbligatoria!', 'data.ingred.required_without' => 'E necessario almeno un ingrediente!']; $validator = Validator::make($request->all(), $rules, $messages); $errors = $validator->errors(); $errors = json_decode($errors); if ($validator->fails()) { return response()->json(['message' => $errors], 422); } //this we will need if the editing user is not the owner (admin editing) $userid = Auth::user()->id; $recipe = \App\Recipe::findOrFail($recipe_id); //insert the new values! $recipe->title = $request->data['title']; $recipe->procedure = $request->data['procedure']; $recipe->user_id = $userid; $recipe->save(); // removes old records recipe_ingredient from db // creates new record into pivot table recipe-ingredient for each ingredient needed! $oldIngrInPivot = \App\Recipe_Ingredient::where('recipe_id', '=', $recipe_id)->get(); foreach ($oldIngrInPivot as $oldIngr) { \App\Recipe_Ingredient::destroy($oldIngr->id); } foreach ($request->data['ingred'] as $ingr) { $ingrInDb = \App\Ingredient::where('name', '=', $ingr['name'])->first(); $pivot = \App\Recipe_Ingredient::create(['recipe_id' => $recipe_id, 'ingredient_id' => $ingrInDb->id, 'quantity' => $ingr['quantity']]); } }