22
33namespace MongoDB \Laravel \Eloquent ;
44
5+ use Illuminate \Database \Eloquent \Model as EloquentModel ;
56use Illuminate \Database \Eloquent \Relations \MorphOne ;
67use Illuminate \Support \Str ;
8+ use MongoDB \Laravel \Eloquent \Model as MongoDBModel ;
79use MongoDB \Laravel \Helpers \EloquentBuilder ;
810use MongoDB \Laravel \Relations \BelongsTo ;
911use MongoDB \Laravel \Relations \BelongsToMany ;
@@ -21,15 +23,15 @@ trait HybridRelations
2123 /**
2224 * Define a one-to-one relationship.
2325 *
24- * @param string $related
26+ * @param class- string<EloquentModel> $related
2527 * @param string $foreignKey
2628 * @param string $localKey
2729 * @return \Illuminate\Database\Eloquent\Relations\HasOne
2830 */
2931 public function hasOne ($ related , $ foreignKey = null , $ localKey = null )
3032 {
3133 // 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)) {
3335 return parent ::hasOne ($ related , $ foreignKey , $ localKey );
3436 }
3537
@@ -45,7 +47,7 @@ public function hasOne($related, $foreignKey = null, $localKey = null)
4547 /**
4648 * Define a polymorphic one-to-one relationship.
4749 *
48- * @param string $related
50+ * @param class- string<EloquentModel> $related
4951 * @param string $name
5052 * @param string $type
5153 * @param string $id
@@ -55,7 +57,7 @@ public function hasOne($related, $foreignKey = null, $localKey = null)
5557 public function morphOne ($ related , $ name , $ type = null , $ id = null , $ localKey = null )
5658 {
5759 // 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)) {
5961 return parent ::morphOne ($ related , $ name , $ type , $ id , $ localKey );
6062 }
6163
@@ -71,15 +73,15 @@ public function morphOne($related, $name, $type = null, $id = null, $localKey =
7173 /**
7274 * Define a one-to-many relationship.
7375 *
74- * @param string $related
76+ * @param class- string<EloquentModel> $related
7577 * @param string $foreignKey
7678 * @param string $localKey
7779 * @return \Illuminate\Database\Eloquent\Relations\HasMany
7880 */
7981 public function hasMany ($ related , $ foreignKey = null , $ localKey = null )
8082 {
8183 // 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)) {
8385 return parent ::hasMany ($ related , $ foreignKey , $ localKey );
8486 }
8587
@@ -95,7 +97,7 @@ public function hasMany($related, $foreignKey = null, $localKey = null)
9597 /**
9698 * Define a polymorphic one-to-many relationship.
9799 *
98- * @param string $related
100+ * @param class- string<EloquentModel> $related
99101 * @param string $name
100102 * @param string $type
101103 * @param string $id
@@ -105,7 +107,7 @@ public function hasMany($related, $foreignKey = null, $localKey = null)
105107 public function morphMany ($ related , $ name , $ type = null , $ id = null , $ localKey = null )
106108 {
107109 // 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)) {
109111 return parent ::morphMany ($ related , $ name , $ type , $ id , $ localKey );
110112 }
111113
@@ -126,7 +128,7 @@ public function morphMany($related, $name, $type = null, $id = null, $localKey =
126128 /**
127129 * Define an inverse one-to-one or many relationship.
128130 *
129- * @param string $related
131+ * @param class- string<EloquentModel> $related
130132 * @param string $foreignKey
131133 * @param string $otherKey
132134 * @param string $relation
@@ -142,7 +144,7 @@ public function belongsTo($related, $foreignKey = null, $otherKey = null, $relat
142144 }
143145
144146 // 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)) {
146148 return parent ::belongsTo ($ related , $ foreignKey , $ otherKey , $ relation );
147149 }
148150
@@ -211,7 +213,7 @@ public function morphTo($name = null, $type = null, $id = null, $ownerKey = null
211213 /**
212214 * Define a many-to-many relationship.
213215 *
214- * @param class-string<\Illuminate\Database\Eloquent\Model > $related
216+ * @param class-string<EloquentModel > $related
215217 * @param string|null $collection
216218 * @param string|null $foreignKey
217219 * @param string|null $otherKey
@@ -237,7 +239,7 @@ public function belongsToMany(
237239 }
238240
239241 // 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)) {
241243 return parent ::belongsToMany (
242244 $ related ,
243245 $ collection ,
@@ -306,7 +308,7 @@ protected function guessBelongsToManyRelation()
306308 */
307309 public function newEloquentBuilder ($ query )
308310 {
309- if (is_subclass_of ($ this , Model ::class)) {
311+ if (is_subclass_of ($ this , MongoDBModel ::class)) {
310312 return new Builder ($ query );
311313 }
312314
0 commit comments