File tree Expand file tree Collapse file tree 2 files changed +25
-1
lines changed
Expand file tree Collapse file tree 2 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -155,7 +155,17 @@ private function findModel(ClassReflection $calledOnReflection): string|null
155155 $ calledOnReflection ->getName () === EloquentBuilder::class ||
156156 $ calledOnReflection ->isSubclassOf (EloquentBuilder::class)
157157 ) {
158- $ modelType = $ calledOnReflection ->getActiveTemplateTypeMap ()->getType ('TModelClass ' );
158+ if ($ calledOnReflection ->isGeneric ()) {
159+ $ modelType = $ calledOnReflection ->getActiveTemplateTypeMap ()->getType ('TModelClass ' ) ??
160+ $ calledOnReflection ->getActiveTemplateTypeMap ()->getType ('TModel ' );
161+ } elseif ($ calledOnReflection ->getParentClass () !== null ) {
162+ $ parent = $ calledOnReflection ->getParentClass ();
163+
164+ $ modelType = $ parent ->getActiveTemplateTypeMap ()->getType ('TModelClass ' ) ??
165+ $ parent ->getActiveTemplateTypeMap ()->getType ('TModel ' );
166+ } else {
167+ $ modelType = null ;
168+ }
159169
160170 if (! $ modelType instanceof ObjectType) {
161171 return null ;
Original file line number Diff line number Diff line change @@ -158,8 +158,22 @@ public function hasActiveActions(): bool
158158
159159class AccountAction extends Model
160160{
161+ /**
162+ * @param Builder<AccountAction> $query
163+ *
164+ * @return Builder<AccountAction>
165+ */
161166 public function scopeWhereActive (Builder $ query ): Builder
162167 {
163168 return $ query ->where ('is_active ' , true );
164169 }
165170}
171+
172+ /** @extends Builder<AccountAction> */
173+ class SomeBuilder extends Builder
174+ {
175+ public function doFoo (): void
176+ {
177+ $ this ->whereActive ();
178+ }
179+ }
You can’t perform that action at this time.
0 commit comments