diff --git a/src/Attributes/ForceAppendAttribute.php b/src/Attributes/ForceAppendAttribute.php new file mode 100644 index 0000000..c130d69 --- /dev/null +++ b/src/Attributes/ForceAppendAttribute.php @@ -0,0 +1,14 @@ +getAttributes(), function (ReflectionAttribute $attribute) { - return is_subclass_of($attribute->getName(), QueryParam::class); + return is_subclass_of($attribute->getName(), QueryParam::class) + ?: $attribute->getName() === ForceAppendAttribute::class; }); foreach ($allowedQueryParams as $allowedQueryParam) { $attributeInstance = $allowedQueryParam->newInstance(); match (true) { + $attributeInstance instanceof ForceAppendAttribute => $this->forceAppend($attributeInstance->type, $attributeInstance->attributes), $attributeInstance instanceof SearchQueryParam => $this->allowSearch($attributeInstance->allowSearch), $attributeInstance instanceof SearchFilterQueryParam => $this->allowSearchFilter($attributeInstance->attribute, $attributeInstance->values), $attributeInstance instanceof FilterQueryParam => $this->allowFilter($attributeInstance->attribute, $attributeInstance->type, $attributeInstance->values),