1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use App\Models\Game;
- use App\Models\Game_genre;
- use App\Models\Genre;
- use App\Models\Comment;
- use App\Models\Review;
- class GameController extends Controller
- {
- // Переход по страницам
- function all() { return view('games/all', ['games' => Game::with('genre')->orderBy('created_at', 'desc')->get()]); }
- function view_insert() { return view('games/insert', ['genres' => Genre::all()]); }
- function view_update(Request $request) {
- $games = Game::with('genre')->find($request->update);
- $genres = Genre::all();
- foreach ($genres as $genre) {
- foreach ($games->genre as $g) {
- if ($genre->id == $g->id) $genre->checed = "true";
- }
- }
- return view('games/update', ['game' => $games, 'genres' => $genres]);
- }
- function insert(Request $request) { // Добавить
- $request->validate([ 'title' => 'required', 'release_date' => 'required' ], [ 'title.required' => 'Поле "название" не заполнено', 'release_date.required' => 'Поле "Дата релиза" не заполнено', ]);
- $game = new Game;
- $game->title = $request->input("title");
- $game->description = $request->input("description");
- $game->release_date = $request->input("release_date");
- $game->save();
- $genres = Genre::all();
- for ($i = 0; $i < count($genres); $i++)
- if ($request->input($genres[$i]->id) == 'on') {
- $game_g = new Game_genre;
- $game_g->game_id = $game->id;
- $game_g->genre_id = $genres[$i]->id;
- $game_g->save();
- }
- return back()->with('message', 'Игра добавлена!');
- }
- function update(Request $request){ // Изменить
- $request->validate([
- 'title' => 'required',
- 'release_date' => 'required',
- ], [
- 'title.required' => 'Поле "название" не заполнено',
- 'release_date.required' => 'Поле "Дата релиза" не заполнено',
- ]);
- $game = Game::with('genre')->find($request->input("id"));
- $genres = Genre::all();
- for ($i = 0; $i < count($genres); $i++)
- if ($request->input($genres[$i]->id) == 'on') {
- if (count(Game_genre::where('game_id', $game->id)->where('genre_id', $genres[$i]->id)->get()) == 0){
- $game_g = new Game_genre;
- $game_g->game_id = $game->id;
- $game_g->genre_id = $genres[$i]->id;
- $game_g->save();
- }
- }
- for ($i = 0; $i < count($game->genre); $i++)
- if ($request->input($game->genre[$i]->id) != 'on')
- Game_genre::where('game_id', $game->id)->where('genre_id', $game->genre[$i]->id)->delete();
- $game = Game::find($request->input("id"));
- $game->title = $request->input("title");
- $game->description = $request->input("description");
- $game->release_date = $request->input("release_date");
- $game->save();
- return back()->with('message', 'Игра обновлена!');
- }
- function delete(Request $request){
- $reviews = Review::where('game_id', $request->delete)->get();
- foreach ($reviews as $review) Comment::where('post_type', 'use App\Models\Game;')->where('post_id', $review->id)->delete();
- Review::where('game_id', $request->delete)->delete();
- Game_genre::where('game_id', $request->delete)->delete();
- Game::where('id', $request->delete)->delete();
- return back();
- }
- }
|