From 3ccf1b1f73293cd24c8479b2407670e5db6dac02 Mon Sep 17 00:00:00 2001 From: Orkhan Ahmadov Date: Mon, 8 Aug 2022 21:53:51 +0200 Subject: [PATCH] [9.x] Extract child route model relationship name into a method (#43597) * Extract child route model relationship name * Fix style * Update Model.php Co-authored-by: Taylor Otwell --- src/Illuminate/Database/Eloquent/Model.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Eloquent/Model.php b/src/Illuminate/Database/Eloquent/Model.php index b505e28ac06f..29d2875d8254 100644 --- a/src/Illuminate/Database/Eloquent/Model.php +++ b/src/Illuminate/Database/Eloquent/Model.php @@ -1980,7 +1980,7 @@ public function resolveSoftDeletableChildRouteBinding($childType, $value, $field */ protected function resolveChildRouteBindingQuery($childType, $value, $field) { - $relationship = $this->{Str::plural(Str::camel($childType))}(); + $relationship = $this->{$this->childRouteBindingRelationshipName($childType)}(); $field = $field ?: $relationship->getRelated()->getRouteKeyName(); @@ -1994,6 +1994,17 @@ protected function resolveChildRouteBindingQuery($childType, $value, $field) : $relationship->getRelated()->resolveRouteBindingQuery($relationship, $value, $field); } + /** + * Retrieve the child route model binding relationship name for the given child type. + * + * @param string $childType + * @return string + */ + protected function childRouteBindingRelationshipName($childType) + { + return Str::plural(Str::camel($childType)); + } + /** * Retrieve the model for a bound value. *