예제 #1
0
 /**
  * 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);
 }
예제 #2
0
 /**
  * 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']]);
     }
 }