Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Laravel Eloquent findet die Rückgabe von null

Dies liegt daran, dass Zahlen, die mit 0 beginnen, von PHP als Oktal betrachtet werden, gemäß:http://php.net/manual/en/language.types.integer.php

Es scheint, dass PHP die Zahl in eine Dezimalzahl umwandelt, bevor die MySQL-Abfrage ausgeführt wird, was bedeutet, dass die Abfrage mit einer falschen Zahl gebildet wird.

Zum Beispiel:

Support::find(02155);

Wird:

'SELECT * FROM mytable WHERE id = 1133'

Die Lösung

Ich habe dies gelöst, indem ich die Zahl mit (int) in eine Ganzzahl umgewandelt habe, bevor ich sie mit der Find-Methode von Eloquents verwendet habe. Es funktioniert auch, wenn Sie die Zahl als Zeichenfolge (d. h. in Anführungszeichen) übergeben, etwa so:

Support::find('02155');