From 2508e7a822442306724c75275907dc145de1bec1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=2E=20Nagy=20Gerg=C5=91?= Date: Tue, 24 Oct 2023 23:43:10 +0200 Subject: [PATCH] wip --- src/Fields/BelongsToMany.php | 8 +++++++- src/Fields/File.php | 8 -------- src/Http/Controllers/MediaController.php | 2 +- src/Http/Controllers/RepeaterController.php | 2 +- src/Resources/Resource.php | 17 ++++++++--------- 5 files changed, 17 insertions(+), 20 deletions(-) diff --git a/src/Fields/BelongsToMany.php b/src/Fields/BelongsToMany.php index 89eee704..7b64c870 100644 --- a/src/Fields/BelongsToMany.php +++ b/src/Fields/BelongsToMany.php @@ -26,7 +26,6 @@ public function __construct(string $label, string $modelAttribute = null, Closur parent::__construct($label, $modelAttribute, $relation); $this->setAttribute('multiple', true); - $this->name($this->modelAttribute.'[]'); } /** @@ -98,6 +97,13 @@ public function toOption(Request $request, Model $model, Model $related): array $option = parent::toOption($request, $model, $related); + $option['attrs']['name'] = sprintf( + '%s[%s][%s]', + $this->getAttribute('name'), + $related->getKey(), + $this->getRelation($model)->getRelatedPivotKeyName() + ); + $option['fields'] = is_null($this->pivotFieldsResolver) ? new Fields() : call_user_func_array($this->pivotFieldsResolver, [$request, $model, $related]); diff --git a/src/Fields/File.php b/src/Fields/File.php index c62fa5a8..78671034 100644 --- a/src/Fields/File.php +++ b/src/Fields/File.php @@ -106,14 +106,6 @@ public function resolveOptions(Request $request, Model $model): array ->all(); } - /** - * {@inheritdoc} - */ - public function newOption(Model $related, string $label): Option - { - return new Option($related, $label); - } - /** * Set the storage resolver callback. */ diff --git a/src/Http/Controllers/MediaController.php b/src/Http/Controllers/MediaController.php index 29e3b8ca..332a54c1 100644 --- a/src/Http/Controllers/MediaController.php +++ b/src/Http/Controllers/MediaController.php @@ -13,7 +13,7 @@ class MediaController extends Controller */ public function __invoke(Request $request): JsonResponse { - $resource = $request->route('resource'); + $resource = $request->route('_resource'); $field = $request->route('field'); diff --git a/src/Http/Controllers/RepeaterController.php b/src/Http/Controllers/RepeaterController.php index 80a5be59..dec01867 100644 --- a/src/Http/Controllers/RepeaterController.php +++ b/src/Http/Controllers/RepeaterController.php @@ -12,7 +12,7 @@ class RepeaterController extends Controller */ public function __invoke(Request $request): JsonResponse { - $resource = $request->route('resource'); + $resource = $request->route('_resource'); $field = $request->route('field'); diff --git a/src/Resources/Resource.php b/src/Resources/Resource.php index 7b3bd726..416ee1d2 100644 --- a/src/Resources/Resource.php +++ b/src/Resources/Resource.php @@ -22,7 +22,6 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Http\Request; -use Illuminate\Routing\Events\RouteMatched; use Illuminate\Routing\Router; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Gate; @@ -94,6 +93,14 @@ public function getUriKey(): string return $this->getKey(); } + /** + * Get the route parameter name. + */ + public function getRouteParameterName(): string + { + return '_resource'; + } + /** * Get the name. */ @@ -285,14 +292,6 @@ public function registerRoutes(Request $request, Router $router): void }); } - /** - * Handle the route matched event. - */ - public function routeMatched(RouteMatched $event): void - { - // - } - /** * Get the instance as an array. */