Blame view

app/Http/Controllers/Admin/GroupsController.php 3.03 KB
82a9544dc   Андрей Ларионов   Связи моделей, гр...
1
2
3
4
5
6
  <?php
  
  namespace App\Http\Controllers\Admin;
  
  use App\Http\Controllers\Controller;
  use App\Models\Group_user;
29350503f   Андрей Ларионов   Расширение полей ...
7
  use App\Models\User;
82a9544dc   Андрей Ларионов   Связи моделей, гр...
8
9
10
11
12
13
14
15
  use Illuminate\Http\Request;
  use Illuminate\Support\Facades\Auth;
  use Illuminate\Support\Facades\Validator;
  
  class GroupsController extends Controller
  {
      // индексная страница
      public function index() {
29350503f   Андрей Ларионов   Расширение полей ...
16
          $groups = Group_user::query()->active()->paginate(15);
82a9544dc   Андрей Ларионов   Связи моделей, гр...
17
18
19
20
21
22
          return view('admin.groups.index', compact('groups'));
      }
  
      // форма добавления группы
      public function add() {
          $editor = Auth::user()->id;
29350503f   Андрей Ларионов   Расширение полей ...
23
24
          $users = User::query()->get();
          return view('admin.groups.add', compact('editor', 'users'));
82a9544dc   Андрей Ларионов   Связи моделей, гр...
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
      }
  
      // форма сохранения добавленной группы
      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;
29350503f   Андрей Ларионов   Расширение полей ...
51
52
          $users = User::query()->get();
          return view('admin.groups.edit', compact('editor', 'group', 'users'));
82a9544dc   Андрей Ларионов   Связи моделей, гр...
53
54
55
56
      }
  
      // форма сохранения редактированной группы
      public function update(Group_user $group, Request $request) {
29350503f   Андрей Ларионов   Расширение полей ...
57
58
59
  
          $params = $request->all();
          unset($params['usergroup']);
82a9544dc   Андрей Ларионов   Связи моделей, гр...
60
61
62
63
64
65
66
67
68
69
70
71
72
          $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());
29350503f   Андрей Ларионов   Расширение полей ...
73
74
75
76
77
78
              $group->ingroup()->sync($request->usergroup);
              /*if ($request->usergroup->count()) {
                  foreach ($request->usergroup as $us) {
                     Group_works
                  }
              }*/
82a9544dc   Андрей Ларионов   Связи моделей, гр...
79
80
81
82
83
              return redirect()->route('admin.groups')
                  ->with('success', 'Данные были успешно сохранены');
          }
          return redirect()->route('admin.groups');
      }
29350503f   Андрей Ларионов   Расширение полей ...
84
85
86
87
88
89
  
      public function destroy(Group_user $group) {
          $group->update(['is_remove' => 1]);
  
          return redirect()->route('admin.groups');
      }
82a9544dc   Андрей Ларионов   Связи моделей, гр...
90
  }