diff --git a/src/Exceptions/CannotCreateData.php b/src/Exceptions/CannotCreateData.php index df89007e8..eea03f575 100644 --- a/src/Exceptions/CannotCreateData.php +++ b/src/Exceptions/CannotCreateData.php @@ -5,6 +5,7 @@ use Exception; use Illuminate\Support\Collection; use Spatie\LaravelData\Support\DataClass; +use Spatie\LaravelData\Support\DataProperty; use Throwable; class CannotCreateData extends Exception @@ -28,7 +29,12 @@ public static function constructorMissingParameters( $message = "Could not create `{$dataClass->name}`: the constructor requires {$dataClass->constructorMethod->parameters->count()} parameters, {$parameters->count()} given."; if ($parameters->isNotEmpty()) { - $message .= " Parameters given: {$parameters->keys()->join(', ')}."; + $message .= " Parameters given: {$parameters->keys()->join(', ')}. Parameters missing: {$dataClass + ->constructorMethod + ->parameters + ->reject(fn (DataProperty $parameter) => $parameters->has($parameter->name)) + ->map(fn (DataProperty $parameter) => $parameter->name) + ->join(', ')}"; } return new self($message, previous: $previous);