1
resposta

[Dúvida] Exibir ou esconder um Formulário dinamicamente (Laravel)

Então, eu tenho um formulário bem simples em que um usuário poderá fazer um pedido de legenda:

<form action="includes/novo-pedido.php" method="POST" class="form-group col-md-12" id="pedido">
            <label for="nome"><span style="color: #f00">*</span>Nome: </label>
            <input type="text" name="solicitante" class="form-control" id="nome" required>

            <label for="email"><span style="color: #f00">*</span>E-mail: </label>
            <input type="email" name="email" class="form-control" id="email" required>

            <label for="musica"><span style="color: #f00">*</span>Música: </label>
            <input type="text" name="musica" class="form-control" id="musica" required>

            <label for="artista"><span style="color: #f00">*</span>Artista: </label>
            <input type="text" name="artista" class="form-control" id="artista" required>

            <label for="video"><span style="color: #f00">*</span>Link do Vídeo: </label>
            <input type="url" name="link_original" class="form-control" id="video" required>
            <p></p>

            <button type="submit" name="adicionar" class="btn-black btn w-25">Solicitar Legenda</button>
            <button type="reset" class="btn-black btn w-25">Limpar</button>

        </form>

A questão aqui é que esse formulário ficará ativo por um período, e depois será desativado até ser necessário ativá-lo novamente.

Existe alguma maneira de se salvar esse código no BD e controlar o status dele como ativo ou inativo quando eu precisar? Algo parecido com o que existe com os snippets do Wordpress, como nessa imagem?Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

E aí! Beleza? Olha, você pode salvar a informação do status (ativo ou inativo) no banco de dados sim. Dá para fazer algo parecido com os snippets do WordPress, só que no mundo Laravel.

A ideia seria adicionar um campo na tabela do banco de dados para armazenar o status do formulário. Digamos que você crie um campo chamado status na tabela relacionada a esse formulário. Aí, quando precisar desativar o formulário, você só altera o valor desse campo para "inativo". Quando quiser ativar de novo, é só mudar para "ativo".

No seu código Laravel, na hora de exibir o formulário, você verifica o status no banco antes. Se estiver ativo, mostra; se não, esconde. Fica algo mais ou menos assim:

// Código para pegar o status do banco, supondo que você tenha um Model chamado Pedido
$statusFormulario = Pedido::where('alguma_condicao', 'algum_valor')->pluck('status')->first();

if ($statusFormulario === 'ativo') {
    // Mostra o formulário
    echo '<form ...> Seu código HTML do formulário aqui </form>';
} else {
    // Esconde o formulário
    echo 'Formulário temporariamente desativado. Volte mais tarde!';
}

E quando precisar mudar o status, é só atualizar no banco de dados. Tipo assim:

Pedido::where('alguma_condicao', 'algum_valor')->update(['status' => 'inativo']);

E vice-versa para ativar. Sacou a ideia? Qualquer coisa, tamo junto!