|
5 | 5 | namespace Tempest\Database\Builder; |
6 | 6 |
|
7 | 7 | use ReflectionException; |
8 | | -use Tempest\Database\BelongsTo; |
9 | | -use Tempest\Database\Builder\Relations\BelongsToRelation; |
10 | | -use Tempest\Database\Builder\Relations\HasManyRelation; |
11 | | -use Tempest\Database\Builder\Relations\HasOneRelation; |
12 | 8 | use Tempest\Database\Config\DatabaseConfig; |
13 | | -use Tempest\Database\Eager; |
14 | | -use Tempest\Database\HasMany; |
15 | | -use Tempest\Database\HasOne; |
16 | 9 | use Tempest\Database\Table; |
17 | 10 | use Tempest\Reflection\ClassReflector; |
18 | 11 | use Tempest\Support\Arr\ImmutableArray; |
@@ -41,47 +34,6 @@ public function __construct(string|object $model) |
41 | 34 | } |
42 | 35 | } |
43 | 36 |
|
44 | | - /** @return \Tempest\Database\Builder\Relations\Relation[] */ |
45 | | - public function getRelations(string $relationName): array |
46 | | - { |
47 | | - $relations = []; |
48 | | - $relationNames = explode('.', $relationName); |
49 | | - $alias = $this->getTableDefinition()->name; |
50 | | - $class = $this->modelClass; |
51 | | - |
52 | | - foreach ($relationNames as $relationNamePart) { |
53 | | - $property = $class->getProperty($relationNamePart); |
54 | | - |
55 | | - if ($property->hasAttribute(HasMany::class)) { |
56 | | - /** @var HasMany $relationAttribute */ |
57 | | - $relationAttribute = $property->getAttribute(HasMany::class); |
58 | | - $relations[] = HasManyRelation::fromAttribute($relationAttribute, $property, $alias); |
59 | | - $class = HasManyRelation::getRelationModelClass($property, $relationAttribute)->getType()->asClass(); |
60 | | - $alias .= ".{$property->getName()}"; |
61 | | - } elseif ($property->getType()->isIterable()) { |
62 | | - $relations[] = HasManyRelation::fromInference($property, $alias); |
63 | | - $class = $property->getIterableType()->asClass(); |
64 | | - $alias .= ".{$property->getName()}[]"; |
65 | | - } elseif ($property->hasAttribute(HasOne::class)) { |
66 | | - $relations[] = new HasOneRelation($property, $alias); |
67 | | - $class = $property->getType()->asClass(); |
68 | | - $alias .= ".{$property->getName()}"; |
69 | | - } elseif ($property->hasAttribute(BelongsTo::class)) { |
70 | | - /** @var BelongsTo $relationAttribute */ |
71 | | - $relationAttribute = $property->getAttribute(BelongsTo::class); |
72 | | - $relations[] = BelongsToRelation::fromAttribute($relationAttribute, $property, $alias); |
73 | | - $class = $property->getType()->asClass(); |
74 | | - $alias .= ".{$property->getName()}"; |
75 | | - } else { |
76 | | - $relations[] = BelongsToRelation::fromInference($property, $alias); |
77 | | - $class = $property->getType()->asClass(); |
78 | | - $alias .= ".{$property->getName()}"; |
79 | | - } |
80 | | - } |
81 | | - |
82 | | - return $relations; |
83 | | - } |
84 | | - |
85 | 37 | public function getTableDefinition(): TableDefinition |
86 | 38 | { |
87 | 39 | $specificName = $this->modelClass |
|
0 commit comments