applicant-site/app/Http/Controllers/admin/Catalog/DirectionDescriptionControl...

73 lines
2.7 KiB
PHP
Raw Normal View History

2024-06-18 16:22:54 +03:00
<?php
namespace App\Http\Controllers\admin\Catalog;
use App\Http\Controllers\Controller;
use App\Http\Requests\admin\StoreDirectionDescriptionRequest;
use App\Http\Requests\admin\UpdateDirectionDescriptionRequest;
use App\Models\Direction;
use App\Models\DirectionDescription;
use Illuminate\Support\Facades\Storage;
class DirectionDescriptionController extends Controller
{
public function index()
{
$directionDescriptions = DirectionDescription::all();
return view('admin.catalog.direction_description.index', compact('directionDescriptions'));
}
public function create()
{
$directionCodes = Direction::pluck('full_name', 'code');
return view('admin.catalog.direction_description.create', compact('directionCodes'));
}
public function store(StoreDirectionDescriptionRequest $request)
{
$validated = $request->validated();
$fileName = $request->file('file')->getClientOriginalName();
$name = Storage::put('public', $request->file('file'));
$directionDescription = new DirectionDescription();
$directionDescription->url = Storage::url($name);
$directionDescription->direction_code = Direction::select('code', 'id')
->where('code', $validated['direction_code'])
->first()
->id;
$directionDescription->file_name = $fileName;
$directionDescription->position = $validated['position'];
$directionDescription->save();
return redirect()->route('direction_descriptions.index');
}
public function edit(DirectionDescription $directionDescription)
{
$directionCodes = Direction::pluck('full_name', 'code');
return view('admin.catalog.direction_description.edit', compact('directionDescription', 'directionCodes'));
}
public function update(UpdateDirectionDescriptionRequest $request, DirectionDescription $directionDescription)
{
$validated = $request->validated();
$fileName = $request->file('file')->getClientOriginalName();
$name = Storage::put('public', $request->file('file'));
$directionDescription->url = Storage::url($name);
$directionDescription->direction_code = Direction::select('code', 'id')
->where('code', $validated['direction_code'])
->first()
->id;
$directionDescription->file_name = $fileName;
$directionDescription->position = $validated['position'];
$directionDescription->save();
return redirect()->route('direction_descriptions.index');
}
public function destroy(DirectionDescription $directionDescription)
{
$directionDescription->delete();
return redirect()->route('direction_descriptions.index');
}
}