Blame view

app/Http/Controllers/Admin/AreaController.php 4.96 KB
232c33a82   Андрей Ларионов   Все формы обратно...
1
2
3
4
5
  <?php
  
  namespace App\Http\Controllers\Admin;
  
  use App\Http\Controllers\Controller;
7c115bff1   Андрей Ларионов   Админка - объекты...
6
  use App\Http\Requests\AreasRequest;
232c33a82   Андрей Ларионов   Все формы обратно...
7
  use App\Models\Area;
3575d19ae   Андрей Ларионов   Админка новости и...
8
  use App\Models\foto_area;
232c33a82   Андрей Ларионов   Все формы обратно...
9
  use Illuminate\Http\Request;
3575d19ae   Андрей Ларионов   Админка новости и...
10
  use Illuminate\Support\Facades\Session;
7c115bff1   Андрей Ларионов   Админка - объекты...
11
  use Illuminate\Support\Facades\Storage;
3575d19ae   Андрей Ларионов   Админка новости и...
12
  use Illuminate\Support\Facades\Validator;
232c33a82   Андрей Ларионов   Все формы обратно...
13
14
15
16
17
18
19
20
21
22
  
  class AreaController extends Controller
  {
      /**
       * Display a listing of the resource.
       *
       * @return \Illuminate\Http\Response
       */
      public function index()
      {
3575d19ae   Андрей Ларионов   Админка новости и...
23
          $areas = Area::query()->orderByDesc('created_at')->orderByDesc('id')->paginate(5);
232c33a82   Андрей Ларионов   Все формы обратно...
24
25
26
27
28
          return view('admin.area.index', compact('areas'));
      }
  
      /**
       * Show the form for creating a new resource.
7c115bff1   Андрей Ларионов   Админка - объекты...
29
       * Форма создания объекта
232c33a82   Андрей Ларионов   Все формы обратно...
30
31
32
33
       * @return \Illuminate\Http\Response
       */
      public function create()
      {
7c115bff1   Андрей Ларионов   Админка - объекты...
34
          return view('admin.area.create');
232c33a82   Андрей Ларионов   Все формы обратно...
35
      }
3575d19ae   Андрей Ларионов   Админка новости и...
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
      /**
       * Форма дополнительных картинок объекта
       */
      public function area_category(Area $area) {
          return view('admin.area.add_img', compact('area'));
      }
  
      /**
       * Сохранение дополнительных картинок объекта
       */
      public function area_add_img(Area $area, Request $request) {
          $rules = [
              'foto' => 'required|min:3|max:255',
          ];
          $messages = [
              'required' => 'Укажите картинку!',
          ];
          $validator = Validator::make($request->all(), $rules, $messages);
  
          if ($validator->fails()) {
              return redirect()->route('admin.img.area', ['area' => $area->id])
                  ->withErrors($validator);
          } else {
             //$area->fotos()->create($request);
             $foto_area = new foto_area();
             $foto_area->area_id = $area->id;
             $foto_area->foto =  $request->file('foto')->store('areas', 'public');
  
             $foto_area->save();
             //$area->fotos()->save($foto_area);
              return  redirect()->route('admin.area.edit', ['area' => $area->id]);
          }
      }
  
      /**
       * Удаление дополнительных картинок объектов недвижимости
       * @param $id
       * @param Area $area
       */
      public function area_del_img($id, Area $area) {
          if (!empty($id)) {
              $id = (int)$id;
              $item = foto_area::find($id);
              Storage::delete($item->foto);
              $item->delete();
              Session::flash('message','Картинка была успешно удалена!');
232c33a82   Андрей Ларионов   Все формы обратно...
82

3575d19ae   Андрей Ларионов   Админка новости и...
83
              return  redirect()->route('admin.area.edit', ['area' => $area->id]);
232c33a82   Андрей Ларионов   Все формы обратно...
84

3575d19ae   Андрей Ларионов   Админка новости и...
85
86
87
          } else {
              return  redirect()->route('admin.area.edit', ['area' => $area->id]);
          }
232c33a82   Андрей Ларионов   Все формы обратно...
88
89
90
91
92
93
94
95
      }
  
      /**
       * Store a newly created resource in storage.
       *
       * @param  \Illuminate\Http\Request  $request
       * @return \Illuminate\Http\Response
       */
7c115bff1   Андрей Ларионов   Админка - объекты...
96
      public function store(AreasRequest $request)
232c33a82   Андрей Ларионов   Все формы обратно...
97
      {
7c115bff1   Андрей Ларионов   Админка - объекты...
98
99
100
101
102
103
104
105
106
          $params = $request->all();
          //unset($params['foto_main']);
  
          if ($request->has('foto_main')) {
              $params['foto_main'] = $request->file('foto_main')->store('areas', 'public');
          }
  
          Area::create($params);
          return redirect()->route('admin.area.index');
232c33a82   Андрей Ларионов   Все формы обратно...
107
108
109
110
      }
  
      /**
       * Display the specified resource.
7c115bff1   Андрей Ларионов   Админка - объекты...
111
       * Просмотр объекта недвижимости
232c33a82   Андрей Ларионов   Все формы обратно...
112
113
114
115
116
       * @param  \App\Models\Area  $area
       * @return \Illuminate\Http\Response
       */
      public function show(Area $area)
      {
7c115bff1   Андрей Ларионов   Админка - объекты...
117
          return view('admin.area.view', compact('area'));
232c33a82   Андрей Ларионов   Все формы обратно...
118
119
120
121
      }
  
      /**
       * Show the form for editing the specified resource.
7c115bff1   Андрей Ларионов   Админка - объекты...
122
       * Форма редактирования объекта
232c33a82   Андрей Ларионов   Все формы обратно...
123
124
125
126
127
       * @param  \App\Models\Area  $area
       * @return \Illuminate\Http\Response
       */
      public function edit(Area $area)
      {
7c115bff1   Андрей Ларионов   Админка - объекты...
128
          return view('admin.area.edit', compact('area'));
232c33a82   Андрей Ларионов   Все формы обратно...
129
130
131
132
      }
  
      /**
       * Update the specified resource in storage.
7c115bff1   Андрей Ларионов   Админка - объекты...
133
       * Обновление-сохранение объекта недвижимости
232c33a82   Андрей Ларионов   Все формы обратно...
134
135
136
137
       * @param  \Illuminate\Http\Request  $request
       * @param  \App\Models\Area  $area
       * @return \Illuminate\Http\Response
       */
7c115bff1   Андрей Ларионов   Админка - объекты...
138
      public function update(AreasRequest $request, Area $area)
232c33a82   Андрей Ларионов   Все формы обратно...
139
      {
7c115bff1   Андрей Ларионов   Админка - объекты...
140
141
142
143
144
145
146
147
148
          $params = $request->all();
          unset($params['foto_main']);
          if ($request->has('foto_main')) {
              Storage::delete($area->foto_main);
              $params['foto_main'] = $request->file('foto_main')->store('areas', 'public');
          }
  
          $area->update($params);
          return redirect()->route('admin.area.index');
232c33a82   Андрей Ларионов   Все формы обратно...
149
150
151
152
      }
  
      /**
       * Remove the specified resource from storage.
7c115bff1   Андрей Ларионов   Админка - объекты...
153
       * Удаление объекта недвижимости
232c33a82   Андрей Ларионов   Все формы обратно...
154
155
156
157
158
       * @param  \App\Models\Area  $area
       * @return \Illuminate\Http\Response
       */
      public function destroy(Area $area)
      {
7c115bff1   Андрей Ларионов   Админка - объекты...
159
160
161
162
163
          if (!empty($area->foto_main)) {
              Storage::delete($area->foto_main);
          }
          $area->delete();
          return redirect()->route('admin.area.index');
232c33a82   Андрей Ларионов   Все формы обратно...
164
165
      }
  }