1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use App\Models\Review;
- use App\Models\Critic;
- use App\Models\Comment;
- use App\Models\Game;
- class ReviewController extends Controller
- {
- // Переход по страницам
- function all() { return view('reviews/all', ['reviews' => Review::with('game')->withSp()->get()]);}
- function all_about_game(Request $request) { return view('games/reviews/all', ['game'=>Game::find($request->review), 'reviews'=>Review::withSp()->where('game_id', $request->review)->get()]); }
- function all_about_critic(Request $request) { return view('critics/reviews/all', ['critic'=>Critic::find($request->review), 'reviews'=>Review::where('author_id', $request->review)->get()]); }
- function view_insert(Request $request) { return view('reviews/insert', [ 'game'=>Game::find($request->button), 'authors'=> Critic::with('specialization')->get() ]); }
- function view_update(Request $request) { return view('reviews/update', ['authors'=> Critic::with('specialization')->get(), 'reviews'=>Review::with('game')->withSp()->find($request->update)]); }
- // Взаимодействия со страницами
- function insert(Request $request) { // Добавить
- $request->validate([
- 'text' => 'required', 'stars' => 'required|min:0|not_in:0|max:5',
- ], [
- 'text.required' => 'Поле "Текст" не заполнено',
- 'stars.required' => 'Поле "Звезды" не заполнено',
- 'stars.min' => 'Количество звезд должно быть больше нуля',
- 'stars.max' => 'Количество звезд должно быть меньше нуля',
- 'stars.not_in' => 'Количество звезд должно быть не равно нулю'
- ]);
- $review = new Review;
- $review->author_id = $request->input("author");
- $review->game_id = $request->input("id");
- $review->text = $request->input("text");
- $review->stars = $request->input("stars");
- $review->save();
- return back()->with('message', 'Рецензия добавлена!');
- }
- function update(Request $request){ // Изменить
- $request->validate([
- 'text' => 'required', 'stars' => 'required|min:0|not_in:0|max:5',
- ], [
- 'text.required' => 'Поле "Текст" не заполнено',
- 'stars.required' => 'Поле "Звезды" не заполнено',
- 'stars.min' => 'Количество звезд должно быть больше нуля',
- 'stars.max' => 'Количество звезд должно быть меньше нуля',
- 'stars.not_in' => 'Количество звезд должно быть не равно нулю'
- ]);
- $review = Review::find($request->input("id"));
- $review->author_id = $request->input("author");
- $review->text = $request->input("text");
- $review->stars = $request->input("stars");
- $review->save();
- return back()->with('message', 'Рецензия обновлена!');
- }
- function delete(Request $request){
- Comment::where('post_type', "App\Models\Review")->where('post_id', $request->delete)->firstorfail()->delete();
- Review::where('id', $request->delete)->firstorfail()->delete();
- return back();
- }
- }
|