2121use Illuminate \Contracts \Foundation \Application ;
2222use Illuminate \Database \Eloquent \Builder ;
2323use Illuminate \Database \Eloquent \Model ;
24+ use ApiPlatform \Metadata \GraphQl \Operation ;
2425
2526/**
2627 * @implements LinksHandlerInterface<Model>
@@ -67,7 +68,7 @@ public function handleLinks(Builder $builder, array $uriVariables, array $contex
6768 }
6869 }
6970
70- if (!$ linkedOperation ) {
71+ if (!$ linkedOperation instanceof Operation ) {
7172 return $ builder ;
7273 }
7374
@@ -86,6 +87,13 @@ public function handleLinks(Builder $builder, array $uriVariables, array $contex
8687 return $ this ->buildQuery ($ builder , $ newLink , $ uriVariables [$ newLink ->getIdentifiers ()[0 ]]);
8788 }
8889
90+ /**
91+ * @param Builder<Model> $builder
92+ * @param Link $link
93+ * @param mixed $identifier
94+ * @return Builder<Model> $builder
95+ * @throws \Illuminate\Contracts\Container\BindingResolutionException
96+ */
8997 private function buildQuery (Builder $ builder , Link $ link , mixed $ identifier ): Builder
9098 {
9199 if ($ to = $ link ->getToProperty ()) {
@@ -94,6 +102,7 @@ private function buildQuery(Builder $builder, Link $link, mixed $identifier): Bu
94102
95103 if ($ from = $ link ->getFromProperty ()) {
96104 $ relation = $ this ->application ->make ($ link ->getFromClass ());
105+
97106 return $ builder ->getModel ()->where ($ relation ->{$ from }()->getQualifiedForeignKeyName (), $ identifier );
98107 }
99108
0 commit comments