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