%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/sljcon/app/Http/Controllers/
Upload File :
Create Path :
Current File : /var/www/html/sljcon/app/Http/Controllers/BeforeAfterController.php

<?php

namespace App\Http\Controllers;

use App\Models\BeforeAfter;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Carbon\Carbon;
use Psy\Exception\BreakException;

class BeforeAfterController extends Controller
{
    public function index()
    {
        $all = BeforeAfter::all();
        return view('admin.compare.all',[
           'items'=>$all
        ]);
    }

    public function newOrEdit($id)
    {
        $item = BeforeAfter::query()
            ->find($id);
        if (!$item) {
            $item = new BeforeAfter();
        }
        return view('admin.compare.form', [
            'item' => $item,
            'id' => $id
        ]);
    }

    public function store(Request $request, $id)
    {
        $item = BeforeAfter::query()
            ->find($id);
        $rules = [
            'name' => 'required|string',
            'before_url' => $item
                ? 'nullable'
                : 'required' . '|image',
            'after_url' => $item
                ? 'nullable'
                : 'required' . '|image'
        ];
        $this->validate($request, $rules);
        DB::beginTransaction();
        try {
            if ($item) {
                $item->name = $request['name'];
            } else {
                $item = new BeforeAfter();
                $item->name = $request['name'];
            }
            if ($file = $request->file('before_url')) {
                if ($item->before_url) {
                    \File::delete(public_path('uploads') . '/' . $item->before_url);
                }
                $fileName = head(explode('.', $file->getClientOriginalName())) . Carbon::now()
                        ->formatLocalized('%d%m%Y%H%M%S') . '.' . last(explode('/', $file->getClientMimeType()));
                $file->move('uploads/compare', $fileName);
                $item->before_url = $fileName;
            }
            if ($file = $request->file('after_url')) {
                if ($item->before_url) {
                    \File::delete(public_path('uploads') . '/' . $item->after_url);
                }
                $fileName = head(explode('.', $file->getClientOriginalName())) . Carbon::now()
                        ->formatLocalized('%d%m%Y%H%M%S') . '.' . last(explode('/', $file->getClientMimeType()));
                $file->move('uploads/compare', $fileName);
                $item->after_url= $fileName;
            }
            $item->save();
            DB::commit();
            return redirect(route('admin.beforeAfter'));
        } catch (\Exception $exception) {
            DB::rollback();
            return redirect(route('admin.beforeAfter.newOrEdit', $item->id));
        }
    }
}

Zerion Mini Shell 1.0