2
2
3
3
namespace MongoDB \Laravel \Eloquent ;
4
4
5
+ use Illuminate \Database \Eloquent \Model as EloquentModel ;
5
6
use Illuminate \Database \Eloquent \Relations \MorphOne ;
6
7
use Illuminate \Support \Str ;
8
+ use MongoDB \Laravel \Eloquent \Model as MongoDBModel ;
7
9
use MongoDB \Laravel \Helpers \EloquentBuilder ;
8
10
use MongoDB \Laravel \Relations \BelongsTo ;
9
11
use MongoDB \Laravel \Relations \BelongsToMany ;
@@ -21,15 +23,15 @@ trait HybridRelations
21
23
/**
22
24
* Define a one-to-one relationship.
23
25
*
24
- * @param string $related
26
+ * @param class- string<EloquentModel> $related
25
27
* @param string $foreignKey
26
28
* @param string $localKey
27
29
* @return \Illuminate\Database\Eloquent\Relations\HasOne
28
30
*/
29
31
public function hasOne ($ related , $ foreignKey = null , $ localKey = null )
30
32
{
31
33
// Check if it is a relation with an original model.
32
- if (! is_subclass_of ($ related , Model ::class)) {
34
+ if (! is_subclass_of ($ related , MongoDBModel ::class)) {
33
35
return parent ::hasOne ($ related , $ foreignKey , $ localKey );
34
36
}
35
37
@@ -45,7 +47,7 @@ public function hasOne($related, $foreignKey = null, $localKey = null)
45
47
/**
46
48
* Define a polymorphic one-to-one relationship.
47
49
*
48
- * @param string $related
50
+ * @param class- string<EloquentModel> $related
49
51
* @param string $name
50
52
* @param string $type
51
53
* @param string $id
@@ -55,7 +57,7 @@ public function hasOne($related, $foreignKey = null, $localKey = null)
55
57
public function morphOne ($ related , $ name , $ type = null , $ id = null , $ localKey = null )
56
58
{
57
59
// Check if it is a relation with an original model.
58
- if (! is_subclass_of ($ related , Model ::class)) {
60
+ if (! is_subclass_of ($ related , MongoDBModel ::class)) {
59
61
return parent ::morphOne ($ related , $ name , $ type , $ id , $ localKey );
60
62
}
61
63
@@ -71,15 +73,15 @@ public function morphOne($related, $name, $type = null, $id = null, $localKey =
71
73
/**
72
74
* Define a one-to-many relationship.
73
75
*
74
- * @param string $related
76
+ * @param class- string<EloquentModel> $related
75
77
* @param string $foreignKey
76
78
* @param string $localKey
77
79
* @return \Illuminate\Database\Eloquent\Relations\HasMany
78
80
*/
79
81
public function hasMany ($ related , $ foreignKey = null , $ localKey = null )
80
82
{
81
83
// Check if it is a relation with an original model.
82
- if (! is_subclass_of ($ related , Model ::class)) {
84
+ if (! is_subclass_of ($ related , MongoDBModel ::class)) {
83
85
return parent ::hasMany ($ related , $ foreignKey , $ localKey );
84
86
}
85
87
@@ -95,7 +97,7 @@ public function hasMany($related, $foreignKey = null, $localKey = null)
95
97
/**
96
98
* Define a polymorphic one-to-many relationship.
97
99
*
98
- * @param string $related
100
+ * @param class- string<EloquentModel> $related
99
101
* @param string $name
100
102
* @param string $type
101
103
* @param string $id
@@ -105,7 +107,7 @@ public function hasMany($related, $foreignKey = null, $localKey = null)
105
107
public function morphMany ($ related , $ name , $ type = null , $ id = null , $ localKey = null )
106
108
{
107
109
// Check if it is a relation with an original model.
108
- if (! is_subclass_of ($ related , Model ::class)) {
110
+ if (! is_subclass_of ($ related , MongoDBModel ::class)) {
109
111
return parent ::morphMany ($ related , $ name , $ type , $ id , $ localKey );
110
112
}
111
113
@@ -126,7 +128,7 @@ public function morphMany($related, $name, $type = null, $id = null, $localKey =
126
128
/**
127
129
* Define an inverse one-to-one or many relationship.
128
130
*
129
- * @param string $related
131
+ * @param class- string<EloquentModel> $related
130
132
* @param string $foreignKey
131
133
* @param string $otherKey
132
134
* @param string $relation
@@ -142,7 +144,7 @@ public function belongsTo($related, $foreignKey = null, $otherKey = null, $relat
142
144
}
143
145
144
146
// Check if it is a relation with an original model.
145
- if (! is_subclass_of ($ related , Model ::class)) {
147
+ if (! is_subclass_of ($ related , MongoDBModel ::class)) {
146
148
return parent ::belongsTo ($ related , $ foreignKey , $ otherKey , $ relation );
147
149
}
148
150
@@ -211,7 +213,7 @@ public function morphTo($name = null, $type = null, $id = null, $ownerKey = null
211
213
/**
212
214
* Define a many-to-many relationship.
213
215
*
214
- * @param class-string<\Illuminate\Database\Eloquent\Model > $related
216
+ * @param class-string<EloquentModel > $related
215
217
* @param string|null $collection
216
218
* @param string|null $foreignKey
217
219
* @param string|null $otherKey
@@ -237,7 +239,7 @@ public function belongsToMany(
237
239
}
238
240
239
241
// Check if it is a relation with an original model.
240
- if (! is_subclass_of ($ related , Model ::class)) {
242
+ if (! is_subclass_of ($ related , MongoDBModel ::class)) {
241
243
return parent ::belongsToMany (
242
244
$ related ,
243
245
$ collection ,
@@ -306,7 +308,7 @@ protected function guessBelongsToManyRelation()
306
308
*/
307
309
public function newEloquentBuilder ($ query )
308
310
{
309
- if (is_subclass_of ($ this , Model ::class)) {
311
+ if (is_subclass_of ($ this , MongoDBModel ::class)) {
310
312
return new Builder ($ query );
311
313
}
312
314
0 commit comments