Laravel - Calculdade idade ou obter o valor do input que está desabilitado[RESOLVIDO]

Estou tentando obter o valor de um input cujo qual possui a idade. porém eu debuguei aqui e percebi que ele está indo vazio pro backend, creio eu que é porque o campo está desabilitado.

Gostaria de saber se é possível obter o valor desse campo mesmo estando desabilitado?

O código abaixo é a forma que estou obter o valor.

if($request->input('idade')>=18) 
{ 
    $regras['cpfPaciente'] = 'required';
}

Caso não seja possível, como faço para calcular a idade do paciente lá no controller?

Observação: o campo fica desabilitado pois a idade é calculada no FrontEnd via Javascript

Respondendo a questão: Como é um input desabilitado, você pode colocar também em um input hidden, assim o browser vai poder fazer o post e o back-end ler o que vier do input hidden.

Mas eu não recomendo postar um cálculo feito no browser, o usuário pode burlar facilmente. Para regras de negócio faça o cálculo no back-end a partir da data informada pelo usuário.

mas o hidden não deixa o componente oculto? pq minha intenção é de o usuário tbm ver a idade do paciente que está sendo cadastrado.

Como informei antes, colocar também em um input hidden. Nao é para retirar o input que o usuário vê.

Lembrando pra nao fazer isso se for uma aplicação profissional, para tratar as regras de negócio calcule a idade no back-end.

1 curtida

Tu tem algum exemplo? De Como posso calcular no backend?

Se voce calculou no javascript, a lógica é a mesma, só muda os recursos da linguagem.

Exemplo aleatório que achei via google: http://www.phpit.com.br/artigos/descobrindo-a-idade-atraves-da-data-de-nascimento.phpit

Pesquise outros se achar necessário: https://www.google.com/search?q=calcular+idade+php

As suas perguntas precisam dar a nós a possibilidade de resposta, porque, falta paramentos para responder, por exemplo esse campo em vez de ser um disabled poder ser um readonly que ai o servidor vai recuperar a informação gerado no seu Javascript, coloque na pergunta o seu calculo.

Claro que o calculo é a respeito de qual dado na tela, qual campo na tela é feito com base esse calculo, que se pode calcular no back-end naturalmente de várias formas, exemplo:

$date = Carbon::createFromFormat('d/m/Y', $request->input('data'));
echo $date->diffInYears(Carbon::now());

Referencia: Carbon - Documentação

Ou seja, é complicado dizer algo sem ver se colocou um código que com disabled realmente nunca vai resgatar porque isso é assim mesmo, só resgata os elementos ativos ou somente leituras (readonly)

1 curtida

troquei disable por readonly e funcionou!
obrigado!