Mysql
 sql >> Base de données >  >> RDS >> Mysql

Laravel Eloquent trouve retour null

Cela est dû au fait que les nombres commençant par 0 sont considérés comme un octal par PHP, selon :http://php.net/manual/en/language.types.integer.php

Il semble que PHP convertisse le nombre en nombre décimal avant d'exécuter la requête MySQL, ce qui signifie que la requête est formée avec un nombre incorrect.

Par exemple :

Support::find(02155);

Devient :

'SELECT * FROM mytable WHERE id = 1133'

La solution

J'ai résolu ce problème en convertissant le nombre en entier en utilisant (int) avant de l'utiliser avec la méthode de recherche Eloquents. Cela fonctionnera également si vous transmettez le nombre sous forme de chaîne (c'est-à-dire entre guillemets), comme ceci :

Support::find('02155');