123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use App\Models\Critic;
- use App\Models\Review;
- use App\Models\Specialization;
- use App\Models\Comment;
- class CriticController extends Controller
- {
- // Переход по страницам
- public function all(){ return view('critics.all', ['critics' => Critic::allWithOrder()]); }
- public function view_append(){ return view('critics.insert', ['specializations'=>Specialization::all()]); }
- function view_update(Request $request) { return view('critics/update', ['critic' => Critic::with('specialization')->find($request->update), 'specializations'=>Specialization::all()]); }
- // Взаимодействия со страницами
- function insert(Request $request) { // Добавить
- $request->validate([ 'name' => 'required' ], [ 'name.required' => 'Поле "Имя" не заполнено' ]);
- $critic = new Critic;
- $critic->name = $request->input("name");
- $critic->specialization_id = $request->input("specialization");
- $critic->save();
- return back()->with('message', 'Критик добавлен!');
- }
- function update(Request $request) { // Изменить
- $request->validate([ 'name' => 'required' ], [ 'name.required' => 'Поле "Имя" не заполнено' ]);
- $critic = Critic::find($request->input("id"));
- $critic->name = $request->input("name");
- $critic->specialization_id = $request->input("specialization");
- $critic->save();
- return back()->with('message', 'Критик обновлен!');
- }
- function delete(Request $request) { // Удаление
- $reviews = Review::where('author_id', $request->delete)->get();
- foreach ($reviews as $review) Comment::where('post_type', 'use App\Models\Review;')->where('post_id', $review->id)->delete();
- Review::where('author_id', $request->delete)->delete();
- Critic::where('id', $request->delete)->delete();
- return back();
- }
- }
|