File manager - Edit - /var/www/html/portal/app/Http/Controllers/HtmlMenuLinkController.php
Back
<?php namespace App\Http\Controllers; use App\Models\Html; use App\Models\HtmlMenuLink; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\View\View; class HtmlMenuLinkController extends Controller { private const PERMISSAO = 'GERENCIADOR_DE_PAGINAS_HTML'; public function __construct() { $this->middleware('htmls'); } /** * Lista e formulário de novo link (GET). Cria link (POST). */ public function index(Request $request, Html $html): View|RedirectResponse { $response = $this->checkPermissao(self::PERMISSAO, 'editar'); if ($response instanceof RedirectResponse) { return $response; } if ($request->isMethod('post')) { $request->validate([ 'titulo' => 'required|max:255', 'description' => 'nullable', 'link' => 'required', 'html_id' => 'required|exists:htmls,id', 'order' => 'required|integer|min:1', ], [ 'titulo.required' => __('* Por favor, informe um título para o link.'), 'link.required' => __('* Por favor, informe o endereço para o link!'), 'html_id.required' => __('* Página HTML inválida.'), 'order.required' => __('* Por favor, informe a ordem de exibição do link!'), ]); HtmlMenuLink::create([ 'titulo' => $request->titulo, 'link' => $request->link, 'description' => $request->input('description'), 'html_id' => $request->html_id, 'status' => $request->input('status', '_SELF'), 'order' => (int) $request->order, ]); return redirect() ->route('admin.htmls.menu.index', $html->id) ->with('success', __('* Link do menu personalizado criado com sucesso!')); } $links = HtmlMenuLink::where('html_id', $html->id)->orderBy('order', 'asc')->get(); $filterParams = $request->only(['q', 'page']); return view('admin.htmls.menu.index', compact('html', 'links', 'filterParams')); } public function update(Request $request, Html $html, string $id): RedirectResponse { $response = $this->checkPermissao(self::PERMISSAO, 'editar'); if ($response instanceof RedirectResponse) { return $response; } $link = HtmlMenuLink::where('html_id', $html->id)->findOrFail($id); $request->validate([ 'titulo' => 'required|max:255', 'link' => 'required', 'order' => 'required|integer|min:1', ], [ 'titulo.required' => __('* Por favor, informe um título para o link.'), 'link.required' => __('* Por favor, informe o endereço para o link!'), 'order.required' => __('* Por favor, informe a ordem de exibição do link!'), ]); $link->fill([ 'titulo' => $request->titulo, 'link' => $request->link, 'description' => $request->input('description'), 'status' => $request->input('status', '_SELF'), 'order' => (int) $request->order, ]); $link->save(); return redirect() ->route('admin.htmls.menu.index', $html->id) ->with('success', __('* Link do menu personalizado atualizado com sucesso!')); } public function destroy(Html $html, string $id): RedirectResponse { $response = $this->checkPermissao(self::PERMISSAO, 'editar'); if ($response instanceof RedirectResponse) { return $response; } $link = HtmlMenuLink::where('html_id', $html->id)->find($id); if (!$link) { return redirect() ->route('admin.htmls.menu.index', $html->id) ->with('error', __('* Link não encontrado!')); } $link->delete(); return redirect() ->route('admin.htmls.menu.index', $html->id) ->with('success', __('* Link do menu personalizado excluído com sucesso!')); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.08 |
proxy
|
phpinfo
|
Settings