0 follower

Final Class Yiisoft\Input\Http\Attribute\Data\FromQueryResolver

InheritanceYiisoft\Input\Http\Attribute\Data\FromQueryResolver
ImplementsYiisoft\Hydrator\Attribute\Data\DataAttributeResolverInterface

Resolver for {@see FromQuery} attribute.

Method Details

Hide inherited methods

__construct() public method

public mixed __construct ( \Yiisoft\RequestProvider\RequestProviderInterface $requestProvider )
$requestProvider \Yiisoft\RequestProvider\RequestProviderInterface

The request provider.

                public function __construct(
    private RequestProviderInterface $requestProvider,
) {
}

            
prepareData() public method

public \Yiisoft\Hydrator\DataInterface prepareData ( \Yiisoft\Hydrator\Attribute\Data\DataAttributeInterface $attribute, \Yiisoft\Hydrator\DataInterface $data )
$attribute \Yiisoft\Hydrator\Attribute\Data\DataAttributeInterface
$data \Yiisoft\Hydrator\DataInterface

                public function prepareData(DataAttributeInterface $attribute, DataInterface $data): DataInterface
{
    if (!$attribute instanceof FromQuery) {
        throw new UnexpectedAttributeException(FromQuery::class, $attribute);
    }
    $array = [];
    $params = $this->requestProvider->get()->getQueryParams();
    $name = $attribute->getName();
    if ($name === null) {
        $array = $params;
    } else {
        $value = ArrayHelper::getValueByPath($params, $name);
        if (is_array($value)) {
            $array = $value;
        }
    }
    return new ArrayData($array, $attribute->getMap(), $attribute->isStrict());
}