File manager - Edit - /var/www/html/portal/app/Http/Services/ParqueTecnologico/AreasService.php
Back
<?php namespace App\Http\Services\ParqueTecnologico; use App\Models\ParqueTecnologico\Area; use Illuminate\Http\Request; use Illuminate\Http\RedirectResponse; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Storage; class AreasService { private const FOLDER = 'parque-tecnologico-areas'; public function list(Request $request): LengthAwarePaginator { $q = (string) ($request->input('q') ?? ''); $query = Area::query(); if ($q !== '') { $query->where(function ($qry) use ($q) { $qry->where('titulo', 'like', "%{$q}%") ->orWhere('descricao', 'like', "%{$q}%"); }); } return $query ->orderBy('ordem') ->orderByDesc('created_at') ->paginate(15) ->withQueryString(); } public function store(array $data, Request $request): RedirectResponse { try { DB::beginTransaction(); $imagemPath = null; if ($request->hasFile('imagem') && $request->file('imagem')->isValid()) { $imagemPath = $request->file('imagem')->store(self::FOLDER, 'public'); } Area::create([ 'titulo' => $data['titulo'], 'descricao' => $data['descricao'] ?? null, 'imagem' => $imagemPath, 'ordem' => (int) ($data['ordem'] ?? 0), 'status' => isset($data['status']) ? (bool) $data['status'] : true, ]); DB::commit(); return redirect() ->route('admin.parqueTecnologico.index', ['tab' => 'areas']) ->with('success', __('Área criada com sucesso.')); } catch (\Throwable $e) { DB::rollBack(); return redirect() ->route('admin.parqueTecnologico.areas.create') ->withInput() ->with('error', __('Erro ao cadastrar área: ') . $e->getMessage()); } } public function update(Area $area, array $data, Request $request): RedirectResponse { try { DB::beginTransaction(); $area->titulo = $data['titulo']; $area->descricao = $data['descricao'] ?? $area->descricao; $area->ordem = isset($data['ordem']) ? (int) $data['ordem'] : $area->ordem; $area->status = isset($data['status']) ? (bool) $data['status'] : $area->status; if ($request->hasFile('imagem') && $request->file('imagem')->isValid()) { if ($area->imagem) { Storage::disk('public')->delete($area->imagem); } $area->imagem = $request->file('imagem')->store(self::FOLDER, 'public'); } $area->save(); DB::commit(); return redirect() ->route('admin.parqueTecnologico.index', ['tab' => 'areas']) ->with('success', __('Área atualizada com sucesso.')); } catch (\Throwable $e) { DB::rollBack(); return redirect() ->route('admin.parqueTecnologico.areas.edit', $area->id) ->withInput() ->with('error', __('Erro ao atualizar área: ') . $e->getMessage()); } } public function destroy(Area $area): RedirectResponse { try { DB::beginTransaction(); if ($area->imagem) { Storage::disk('public')->delete($area->imagem); } $area->delete(); DB::commit(); return redirect() ->route('admin.parqueTecnologico.index', ['tab' => 'areas']) ->with('success', __('Área excluída com sucesso.')); } catch (\Throwable $e) { DB::rollBack(); return redirect() ->route('admin.parqueTecnologico.index', ['tab' => 'areas']) ->with('error', __('Erro ao excluir área: ') . $e->getMessage()); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings