File manager - Edit - /var/www/html/portal/app/Http/Controllers/UrlController.php
Back
<?php namespace App\Http\Controllers; use App\Models\Url; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use App\Http\Requests\UrlRequest; class UrlController extends Controller { public function handle($source) { try { // Captura o caminho completo da requisição para suportar URLs com barras // Usa request()->path() para garantir que URLs com barras sejam capturadas corretamente $path = request()->path(); $url = Url::where('source', $path)->first(); if (!$url) { return response()->view('errors.404', [ 'title' => 'Página não encontrada', 'message' => 'O redirecionamento solicitado não existe' ], 404); } if (!$url->active) { return response()->view('errors.403', [ 'title' => 'Redirecionamento desativado', 'message' => 'Este redirecionamento está temporariamente indisponível' ], 403); } if (!filter_var($url->destination, FILTER_VALIDATE_URL)) { throw new \Exception("URL de destino inválida"); } return redirect()->away($url->destination, 301); } catch (\Exception $e) { \Log::error("Erro no redirecionamento: " . $e->getMessage()); return response()->view('errors.500', [ 'title' => 'Erro no servidor', 'message' => 'Ocorreu um erro ao processar seu pedido' ], 500); } } public function index() { $urls = Url::orderBy('source')->orderBy("created_at", "asc")->paginate(25); return view('admin.urls.index', compact('urls')); } public function create() { return view('admin.urls.create'); } public function store(UrlRequest $request) { $request->validated(); try { DB::beginTransaction(); Url::create([ 'source' => $request->source, 'destination' => $request->destination, 'active' => $request->active ?? true ]); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/urls?page={$page}")->with("success", __("* URL criada com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar criar a url. ' . $e->getMessage()); } } public function edit(Url $url) { return view('admin.urls.edit', compact('url')); } public function update(UrlRequest $request, Url $url) { $request->validated(); try { DB::beginTransaction(); $url->update([ 'source' => $request->source, 'destination' => $request->destination, 'active' => $request->active ?? true ]); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/urls?page={$page}")->with("success", __("* URL atualizada com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar atualizar a url. ' . $e->getMessage()); } } public function destroy(Url $url) { try { DB::beginTransaction(); $url->delete(); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/urls?page={$page}")->with("success", __("* URL excluída com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar atualizar a url. ' . $e->getMessage()); } } public function toggle(Request $request, Url $url) { $url->update(['active' => !$url->active]); return back()->with('success', 'Status alterado com sucesso!'); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.12 |
proxy
|
phpinfo
|
Settings