diff --git a/.gitignore b/.gitignore index eb0a8e7..24b92ea 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /composer.lock /vendor /.phpunit.result.cache +.idea \ No newline at end of file diff --git a/Eloquent/Metadata/ModelMetadata.php b/Eloquent/Metadata/ModelMetadata.php index e6c5b90..65fdca6 100644 --- a/Eloquent/Metadata/ModelMetadata.php +++ b/Eloquent/Metadata/ModelMetadata.php @@ -197,7 +197,11 @@ public function getRelations(Model $model): Collection ->contains(fn ($relationMethod) => str_contains($code, '$this->'.$relationMethod.'(')); }) ->map(function (\ReflectionMethod $method) use ($model) { - $relation = $method->invoke($model); + try { + $relation = $method->invoke($model); + }catch (\Exception $exception){ + return null; + } if (!$relation instanceof Relation) { return null; @@ -287,4 +291,4 @@ private function columnIsUnique(string $column, array $indexes): bool fn ($index) => 1 === \count($index['columns']) && $index['columns'][0] === $column && $index['unique'] ); } -} +} \ No newline at end of file