menuModel = Menu::query() ->where('code', $this->route('menu_code')) ->first(); if (! $this->menuModel) { throw ValidationException::withMessages([ 'menu_code' => 'El menĂº indicado no existe.', ]); } } public function rules(): array { if ($this->menuModel?->content_type !== Menu::CONTENT_TYPE_STATIC) { return [ 'static_content' => ['nullable', 'array'], ]; } $rules = [ 'static_content' => ['required', 'array'], ]; foreach ($this->menuModel->static_content_schema as $field => $rule) { $rules["static_content.{$field}"] = $rule; } return $rules; } }