From b3f54a65c525319441e57d82884060c249ec095d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Munsch?= Date: Sat, 11 Sep 2021 22:44:54 +0200 Subject: [PATCH] BaseEnumRoutable : case to int only if is really an integer --- src/BaseEnumRoutable.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/BaseEnumRoutable.php b/src/BaseEnumRoutable.php index 938910b..afb39be 100644 --- a/src/BaseEnumRoutable.php +++ b/src/BaseEnumRoutable.php @@ -46,7 +46,10 @@ abstract class BaseEnumRoutable extends BaseEnum implements UrlRoutable { // try to cast numeric value first try { - return static::make(is_numeric($value) ? intval($value) : $value); + // try cast to int + $iValue = (is_numeric($value) and floatval(intval($value)) === floatval($value)) ? + (int)$value : $value; + return static::make($iValue); } catch (BadMethodCallException $e) { // try string value after that try {