Laravel - If antes de insert ou update[RESOLVIDO]

8 respostas Resolvido
laravel
Cleiton_Conceicao

gente, estou tentando fazer um IF antes de realizar um insert ou update no banco,porém sempre cai na condição verdadeira.
segue parte do código…

$pac = Paciente::find($id);
 $pac->pac_cpf_responsavel = $request->input('cpfresponsavel');
        if($request->input('status')==2){
        $pac->pac_data_encerramento =  new DateTime();
        }
        $pac->save();
         return redirect()->action(
        'PacienteControlador@edit', ['pac_codigo' => $pac->pac_codigo]
        );

8 Respostas

javaflex

Quando voce debuga $request->input('status') retorna o que? Se é 2 entao está certo retornar true. Fora isso, seja mais específico.

Cleiton_Conceicao

a ideia é o seguite, se o status for igual 2 ele irá efetuar o update no banco com a data e hora atual. caso contrário não irá fazer nada.
porém sempre está dando update…

javaflex

E o status está vindo como?

Cleiton_Conceicao

o status está gravando 3 no banco. não sei pq está caindo na condição verdadeira…

javaflex

Debuga pra ver o que realmente vem no seu código.

javaflex

E se não é pra atualizar nada no banco se o status nao for 2, esse save() deveria estar dentro if. De qualquer tem que verificar qual status está sendo retornado nesse if, você realmente está debugando?

Cleiton_Conceicao
Solucao aceita

depois de muito tempo descobrir o que era…
a lógica está correta, porém quando fica vazio é exibido uma data 01-01-1970 00:00:00
devido as propriedade de q definir no meu input, porém lá no banco está null.

<input type="text" class="form-control datepicker" name="dtencerramento" id="dtencerramento" placeholder="DD/MM/YYYY" 
                                   value="{{date('d-m-Y H:i:s', strtotime(old('dtencerramento', $pac->pac_data_encerramento))) }}" disabled> 

devido a isso tive que fazer um if.
<input type="text" class="form-control datepicker" name="dtencerramento" id="dtencerramento" placeholder="DD/MM/YYYY" 
                                    @if(!empty($pac->pac_data_encerramento))
                                  value="{{date('d/m/Y H:i:s', strtotime(old('dtencerramento', $pac->pac_data_encerramento))) }}" 
                                  @endif ''
                                  disabled>
javaflex

Se tivesse debugado já saberia na hora que a lógica do if estava certa e que o problema estaria em outro lugar.

Criado 28 de fevereiro de 2019
Ultima resposta 1 de mar. de 2019
Respostas 8
Participantes 2