Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Laravel Eloquent encontra retornando null


Isso é causado porque números começando com 0 são considerados um octal pelo PHP, conforme:http://php.net/manual/en/language.types.integer.php

Parece que o PHP converte o número para um decimal antes de executar a consulta MySQL, o que significa que a consulta é formada com um número incorreto.

Por exemplo:
Support::find(02155);

Torna-se:
'SELECT * FROM mytable WHERE id = 1133'

A solução


Resolvi isso convertendo o número em um número inteiro usando (int) antes de usá-lo com o método find do Eloquents. Também funcionará se você passar o número como uma string (ou seja, entre aspas), assim:
Support::find('02155');