- Merged getValue override

This commit is contained in:
Dave Mc Nicoll committed 2026-02-25 20:09:28 +00:00
1 parent b0b3aca6d9
commit fd5d31fa17
11 files changed
+183 -106

No files matched your search

@@ -73,7 +73,7 @@ trait SearchRequestFromRequestTrait
public function fromRequest(ServerRequestInterface $request) : static
{
$this->objectReflection = ObjectReflection::fromClass(static::class)->reflectClass();
if (method_exists($this, 'prepare')) {
$this->prepare($request);
}
@@ -83,7 +83,7 @@ trait SearchRequestFromRequestTrait
$this->page = $queryParams->offsetExists('page') ? $queryParams['page'] : 1;
$this->applyValues(
fn($propertyName, $attribute) => $this->getValueFromSource($request, $propertyName, $attribute)
fn($propertyName, $attribute) =>$this->getValueFromSource($request, $propertyName, $attribute)
);
$operators = $request->getAttribute(SearchRequestInterface::SEARCH_REQUEST_OPERATORS);
@@ -227,6 +227,14 @@ trait SearchRequestFromRequestTrait
protected function getValueFromSource(RequestInterface $request, string $propertyName, SearchParameter $attribute) : mixed
{
$classAttributes = $this->objectReflection->getAttributes(SearchRequestParameter::class);
$searchRequestAttribute = $classAttributes[0]->object;
$className = $searchRequestAttribute->class;
if ( $override = $request->getAttribute(sprintf("searchRequest.%s:%s", $className, $propertyName)) ) {
return $override;
}
$queryParamName = $attribute->getParameters() ?: [ $propertyName ];
foreach($attribute->getSources() as $source) {