GroupsController.php 2.46 KB
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Models\Group_user;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;

class GroupsController extends Controller
{
    // индексная страница
    public function index() {
        $groups = Group_user::query()->paginate(15);
        return view('admin.groups.index', compact('groups'));
    }

    // форма добавления группы
    public function add() {
        $editor = Auth::user()->id;
        return view('admin.groups.add', compact('editor'));
    }

    // форма сохранения добавленной группы
    public function store(Request $request) {
        $rules = [
            'name_group' => 'required|min:3',
        ];
        $messages = [
            'required' => 'Укажите обязательное поле',
        ];
        $validator = Validator::make($request->all(), $rules, $messages);

        if ($validator->fails()) {
            return redirect()->route('admin.add-group')
                ->withErrors($validator);
        } else {
            Group_user::create($request->all());
            return redirect()->route('admin.groups')
                ->with('success', 'Данные были успешно сохранены');
        }
        return redirect()->route('admin.groups');
    }

    // форма редактирования группы
    public function edit(Group_user $group, Request $request) {
        $editor = Auth::user()->id;
        return view('admin.groups.edit', compact('editor', 'group'));
    }

    // форма сохранения редактированной группы
    public function update(Group_user $group, Request $request) {
        $rules = [
            'name_group' => 'required|min:3',
        ];
        $messages = [
            'required' => 'Укажите обязательное поле',
        ];
        $validator = Validator::make($request->all(), $rules, $messages);

        if ($validator->fails()) {
            return redirect()->route('admin.edit-group', ['group' => $group->id])
                ->withErrors($validator);
        } else {
            $group->update($request->all());
            return redirect()->route('admin.groups')
                ->with('success', 'Данные были успешно сохранены');
        }
        return redirect()->route('admin.groups');
    }
}