diff --git a/library/think/Model.php b/library/think/Model.php index fcae0ae9..617ea74d 100644 --- a/library/think/Model.php +++ b/library/think/Model.php @@ -1267,10 +1267,18 @@ abstract class Model implements \JsonSerializable, \ArrayAccess $data = $this->data; } else { $data = array_udiff_assoc($this->data, $this->origin, function ($a, $b) { + if (is_numeric($a) && is_numeric($b)) { + if (strcmp($a, $b) !== 0) { + return 1; + } + if ($a == $b) { + return 0; + } + } if ((empty($a) || empty($b)) && $a !== $b) { return 1; } - return is_object($a) || $a != $b ? 1 : 0; + return is_object($a) || $a !== $b ? 1 : 0; }); } diff --git a/library/think/model/relation/MorphOne.php b/library/think/model/relation/MorphOne.php index 5ec71724..d7f17129 100644 --- a/library/think/model/relation/MorphOne.php +++ b/library/think/model/relation/MorphOne.php @@ -211,7 +211,7 @@ class MorphOne extends Relation $model = new $this->model(); - return $model->save() ? $model : false; + return $model->save($data) ? $model : false; } /**