Mysql
 sql >> Database >  >> RDS >> Mysql

Laravel Eloquent trova il ritorno nullo

Ciò è dovuto al fatto che i numeri che iniziano con 0 sono considerati ottali da PHP, come da:http://php.net/manual/en/language.types.integer.php

Sembra che PHP converta il numero in decimale prima di eseguire la query MySQL, il che significa che la query è formata con un numero errato.

Ad esempio:

Support::find(02155);

Diventa:

'SELECT * FROM mytable WHERE id = 1133'

La soluzione

L'ho risolto convertendo il numero in un intero usando (int) prima di usarlo con il metodo di ricerca Eloquents. Funzionerà anche se passi il numero come una stringa (cioè tra virgolette), in questo modo:

Support::find('02155');