Skip to content

Commit c9017b0

Browse files
author
Admin
committed
Fix sql ambiguous error for related id
1 parent ed9df49 commit c9017b0

File tree

1 file changed

+14
-16
lines changed

1 file changed

+14
-16
lines changed

src/Http/Controllers/ResourceControllerTrait.php

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -263,10 +263,8 @@ public function getRelated(
263263
string $relatedIdentifier
264264
): JsonResponse {
265265
try {
266-
return $this->getRelatedController(
267-
$this->getRelatedFromRelation($identifier, $relation, $relatedIdentifier),
268-
$relation
269-
)->get($relatedIdentifier, $request);
266+
return $this->getRelatedController($identifier, $relation, $relatedIdentifier)
267+
->get($relatedIdentifier, $request);
270268
} catch (\Throwable $e) {
271269
if (!$e instanceof ModelNotFoundException) {
272270
Log::error($this->label . '/' . $identifier . '/' . $relation . '/' . $relatedIdentifier .
@@ -287,10 +285,8 @@ public function updateRelated(
287285
string $relatedIdentifier
288286
): JsonResponse {
289287
try {
290-
return $this->getRelatedController(
291-
$this->getRelatedFromRelation($identifier, $relation, $relatedIdentifier),
292-
$relation
293-
)->update($relatedIdentifier, $request);
288+
return $this->getRelatedController($identifier, $relation, $relatedIdentifier)
289+
->update($relatedIdentifier, $request);
294290
} catch (\Throwable $e) {
295291
if (!$e instanceof ModelNotFoundException) {
296292
Log::error($this->label . '/' . $identifier . '/' . $relation . '/' . $relatedIdentifier .
@@ -307,10 +303,8 @@ public function updateRelated(
307303
public function deleteRelated(string $identifier, string $relation, string $relatedIdentifier): JsonResponse
308304
{
309305
try {
310-
return $this->getRelatedController(
311-
$this->getRelatedFromRelation($identifier, $relation, $relatedIdentifier),
312-
$relation
313-
)->delete($relatedIdentifier);
306+
return $this->getRelatedController($identifier, $relation, $relatedIdentifier)
307+
->delete($relatedIdentifier);
314308
} catch (\Throwable $e) {
315309
if (!$e instanceof ModelNotFoundException) {
316310
Log::error($this->label . '/' . $identifier . '/' . $relation . '/' . $relatedIdentifier .
@@ -467,8 +461,12 @@ protected function throwIfForbidden(bool $condition): void
467461
* @return self
468462
* @throws \Throwable
469463
*/
470-
protected function getRelatedController(BaseModel $related, string $relation): object
471-
{
464+
protected function getRelatedController(
465+
string $identifier,
466+
string $relation,
467+
string $relatedIdentifier
468+
): object {
469+
$related = $this->getRelatedFromRelation($identifier, $relation, $relatedIdentifier);
472470
$controllerFqn = (string)($this->modelFqnToControllerMap[$related::class] ??
473471
($this->relatedModelFqnToControllerMap[$related::class] ?? ''));
474472

@@ -497,12 +495,12 @@ protected function getRelatedFromRelation(
497495

498496
foreach ($related->getPrimaryKeyFilter() as $column => $value) {
499497
if (!\is_array($value) && \is_string($column)) {
500-
$pks[] = $column;
498+
$pks[] = $related->qualifyColumn($column);
501499

502500
continue;
503501
}
504502

505-
$pks[] = \reset($value);
503+
$pks[] = $related->qualifyColumn(\reset($value));
506504
}
507505

508506
if (

0 commit comments

Comments
 (0)