public function store(Request $request) { $validation = Validator::make($request->all(), ['title' => 'unique:dvds,title', 'label_id' => 'required', 'sound_id' => 'required', 'genre_id' => 'required', 'rating_id' => 'required', 'format_id' => 'required']); if (!$validation->passes()) { return Response::json(['errors' => ['title' => $validation->errors()->get('title'), 'label_id' => $validation->errors()->get('label_id'), 'sound_id' => $validation->errors()->get('sound_id'), 'genre_id' => $validation->errors()->get('genre_id'), 'rating_id' => $validation->errors()->get('rating_id'), 'format_id' => $validation->errors()->get('format_id')]], 422); } $dvd = new DVD(); $dvd->title = $request->input('title'); $dvd->label_id = $request->input('label_id'); $dvd->sound_id = $request->input('sound_id'); $dvd->genre_id = $request->input('genre_id'); $dvd->rating_id = $request->input('rating_id'); $dvd->format_id = $request->input('format_id'); $dvd->save(); return ['dvd' => $dvd]; }
public function createDvd(Request $request) { $genre_id = $request->input('genre_id'); $rating_id = $request->input('rating_id'); $award = $request->input('award'); $title = $request->input('title'); $validator = Validator::make($request->all(), ['title' => 'required|unique:dvds']); if ($validator->fails()) { return response()->json(['errors' => $validator->errors()], 422); } $dvd = new DVD(); $dvd->title = $title; $dvd->award = $award; $dvd->genre_id = $genre_id; $dvd->rating_id = $rating_id; $dvd->save(); $createdDVD = DVD::find($dvd->id); return json_encode(array('dvd' => $createdDVD)); }
/** * Updates the dvd record in the database * @param array $input * @param App\Models\DVDInfo $dvd */ public function update(DVDInfo $dvd, array $input) { $dvd->fill($input); $dvd->save(); if (!$dvd->dvds->isEmpty()) { $price = Price::firstOrCreate(['price_whole' => $input['price_whole'], 'price_cents' => $input['price_cents'], 'late_fee_whole' => $input['late_fee_whole'], 'late_fee_cents' => $input['late_fee_cents'], 'points' => $input['points']]); $dvd->dvds()->update(['price_id' => $price->id, 'age_restriction' => $input['age_restriction']]); } $stockChange = $dvd->totalStock() - $input['stock']; // Reduce stock if ($stockChange > 0) { $unrented = $dvd->getUnrented(); $unrented = $unrented->take($stockChange); $ids = array_keys($unrented->getDictionary()); DVD::destroy($ids); } // Increase stock if ($stockChange < 0) { $newDvds = []; while ($stockChange < 0) { array_push($newDvds, new DVD(['price_id' => $price->id, 'age_restriction' => $input['age_restriction']])); $stockChange += 1; } $dvd->dvds()->saveMany($newDvds); } }
public function genresdvds($param) { $dvds = DVD::with('genre', 'sound', 'label', 'format', 'rating')->where('genre_id', $param)->get(); if (isset($dvds[0])) { $genre = $dvds[0]->genre->genre_name; } else { $genre = "Invalid Genre"; } return view('results', ['dvds' => $dvds, 'searchTerm' => "Genre: " . $genre]); }
public function genreDVDs(Request $request, $genre_id) { $dvds = DVD::with('rating', 'genre', 'label')->where('genre_id', "{$genre_id}")->get(); $genre_name = ''; $genre = Genre::where('id', "{$genre_id}")->first(); if (!empty($genre)) { $genre_name = $genre->genre_name; } return view('genre_results', ['dvds' => $dvds, 'genre_name' => $genre_name]); return view('genre_results'); }