File manager - Edit - /var/www/html/portalHomolog/app/Http/Controllers/ProjetosProgramas/ProgramasController.php
Back
<?php namespace App\Http\Controllers\ProjetosProgramas; use App\Http\Controllers\Controller; use App\Models\ProjetosProgramas\Programa; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Validation\Rule; class ProgramasController extends Controller { private string $permissao = 'GERENCIADOR_DE_PROJETOS_E_PROGRAMAS'; private array $perPageOptions; public function __construct() { $this->perPageOptions = config('projetos_programas.per_page_options', [10, 25, 50, 100]); } public function index(Request $request): RedirectResponse { $response = $this->checkPermissao($this->permissao, 'visualizar'); if ($response instanceof RedirectResponse) { return $response; } $params = array_filter([ 'tab' => 'programas', 'search_programas' => $request->get('search'), 'page_programas' => $request->get('page'), 'per_page_programas' => $request->get('per_page'), ], static fn ($v) => $v !== null && $v !== ''); return redirect()->route('admin.projetosProgramas.index', $params); } public function create(): RedirectResponse { $response = $this->checkPermissao($this->permissao, 'adicionar'); if ($response instanceof RedirectResponse) { return $response; } return redirect()->route('admin.projetosProgramas.index', [ 'tab' => 'programas', 'pp_programa' => 'novo', ]); } public function store(Request $request): RedirectResponse { $response = $this->checkPermissao($this->permissao, 'adicionar'); if ($response instanceof RedirectResponse) { return $response; } $data = $this->validateProgramaPayload($request); Programa::create($data); return redirect() ->route('admin.projetosProgramas.index', ['tab' => 'programas']) ->with('success', __('* Programa criado com sucesso!')); } public function edit(Programa $programa): RedirectResponse { $response = $this->checkPermissao($this->permissao, 'editar'); if ($response instanceof RedirectResponse) { return $response; } return redirect()->route('admin.projetosProgramas.index', [ 'tab' => 'programas', 'pp_programa' => $programa->id, ]); } public function update(Request $request, Programa $programa): RedirectResponse { $response = $this->checkPermissao($this->permissao, 'editar'); if ($response instanceof RedirectResponse) { return $response; } $data = $this->validateProgramaPayload($request, $programa); $programa->update($data); return redirect() ->route('admin.projetosProgramas.index', ['tab' => 'programas']) ->with('success', __('* Programa atualizado com sucesso!')); } public function destroy(Programa $programa): RedirectResponse { $response = $this->checkPermissao($this->permissao, 'excluir'); if ($response instanceof RedirectResponse) { return $response; } $programa->delete(); return redirect() ->route('admin.projetosProgramas.index', ['tab' => 'programas']) ->with('success', __('* Programa excluído com sucesso!')); } /** * @return array{codigo: ?string, nome: string} */ private function validateProgramaPayload(Request $request, ?Programa $programa = null): array { $codigoRule = Rule::unique('project_programs', 'codigo')->whereNull('deleted_at'); if ($programa !== null) { $codigoRule = $codigoRule->ignore($programa->id); } $data = $request->validate([ 'codigo' => ['nullable', 'string', 'max:50', 'regex:/^[A-Za-z0-9._\-\/]+$/', $codigoRule], 'nome' => ['required', 'string', 'max:255'], ], [ 'codigo.regex' => __('O código do programa deve conter apenas letras, números e os caracteres . _ - /'), 'codigo.unique' => __('Este código de programa já está em uso.'), ], [ 'codigo' => __('Código do programa'), 'nome' => __('Nome do programa'), ]); $codigo = trim((string) ($data['codigo'] ?? '')); $data['codigo'] = $codigo !== '' ? $codigo : null; return $data; } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings