Laravel - erro SQLSTATE[HY000]: General error: 1366 Incorrect decimal value: '2502,0

eu estava achando que o erro estava sendo provado por causa do ponto e fiz o seguinte código

$pac->pac_renda = str_replace(".","",$request->input('renda'));

porém o erro permanece :confused:

Esse $request->input('renda') pode retornar assim:

  • 2.600,00
  • 260,00

???

ele poderá retornar assim 2.600,00

No banco de dados só precisa ser informado a parte decimal com o separado ponto (.) e porque é no formato norte americano.

Exemplo:

  • Code

    <?php
    
      $value0 = '260,00';
      $value1 = '2.600,00';
    
    
      echo str_replace(['.',','], ['','.'], $value0);
      echo '<br />';
      echo str_replace(['.',','], ['','.'], $value1);
    
  • Saída:

    260.00
    2600.00
    

Resumindo se tem que tirar o ponto e no lugar da virgula colocar o ponto ai resolve o problema no geral

Mude o seu código para fazer o mesmo:

$pac->pac_renda = str_replace(['.',','], ['','.'], $request->input('renda'));

Para fazer um código melhor monte uma função mais ou menos assim:

function parse_decimal($value)
{
    $v = str_replace(['.',','], ['','.'], $value);
    if (is_numeric($v)) return $v;
    return null;
}

funcionou perfeitamente!
como sempre vc sempre me salvando. muito obrigado!

1 curtida