Browse Source

added responsible edit

Alexander Musikhin 8 tháng trước cách đây
mục cha
commit
6d905a71be

+ 11 - 2
app/Http/Controllers/ResponsibleController.php

@@ -55,13 +55,22 @@ class ResponsibleController extends Controller
     public function store(StoreResponsibleRequest $request)
     {
         $responsible = Responsible::query()->create($request->validated());
-        Area::query()->where('id', $request->validated('area_id'))->update(['areas.responsible_id' => $responsible->id]);
+        Area::query()->where('areas.responsible_id', $responsible->id)->update(['responsible_id' => null]);
+        Area::query()->where('id', $request->validated('area_id'))->update(['responsible_id' => $responsible->id]);
         return redirect()->route('responsible.index');
     }
 
+    public function show(Responsible $responsible)
+    {
+        $this->data['responsible'] = $responsible;
+        return view('responsibles.edit', $this->data);
+    }
     public function update(StoreResponsibleRequest $request, Responsible $responsible)
     {
-
+        $responsible->update($request->validated());
+        Area::query()->where('areas.responsible_id', $responsible->id)->update(['responsible_id' => null]);
+        Area::query()->where('id', $request->validated('area_id'))->update(['responsible_id' => $responsible->id]);
+        return redirect()->route('responsible.index');
     }
 
     public function destroy()

+ 1 - 0
app/Models/Dictionary/Area.php

@@ -11,6 +11,7 @@ class Area extends Model
     use SoftDeletes;
 
     protected $fillable = [
+        'responsible_id',
         'name',
         'district_id',
     ];

+ 19 - 0
resources/views/responsibles/edit.blade.php

@@ -0,0 +1,19 @@
+@extends('layouts.app')
+
+@section('content')
+
+    <div class="px-3">
+
+        <form class="row" action="{{ route('responsible.update', $responsible) }}" method="post">
+            <div class="col-xxl-6">
+                <h4>Ответственный</h4>
+                @csrf
+
+                @include('partials.select', ['name' => 'area_id', 'title' => 'Район', 'options' => $areas, 'value' => $responsible->area->id])
+                @include('partials.input', ['name' => 'name', 'title' => 'ФИО', 'required' => true, 'value' => $responsible->name])
+                @include('partials.input', ['name' => 'phone', 'title' => 'Телефон', 'required' => true, 'value' => $responsible->phone])
+
+                @include('partials.submit', ['name' => 'Сохранить'])
+            </div>
+        </form>
+@endsection

+ 2 - 1
resources/views/responsibles/index.blade.php

@@ -18,7 +18,8 @@
     @include('partials.table', [
         'id'        => $id,
         'header'    => $header,
-        'strings'   => $responsibles
+        'strings'   => $responsibles,
+        'routeName' => 'responsible.show',
     ])
 
     <div class="row pt-3 px-3">

+ 1 - 0
routes/web.php

@@ -32,6 +32,7 @@ Route::middleware('auth:web')->group(function () {
         });
         Route::prefix('responsibles')->group(function (){
             Route::get('', [ResponsibleController::class, 'index'])->name('responsible.index');
+            Route::get('{responsible}', [ResponsibleController::class, 'show'])->name('responsible.show');
             Route::post('store', [ResponsibleController::class, 'store'])->name('responsible.store');
             Route::post('update/{responsible}', [ResponsibleController::class, 'update'])->name('responsible.update');
             Route::delete('delete/{responsible}', [ResponsibleController::class, 'destroy'])->name('responsible.destroy');