public static function getNestedProperty(ApiResource $resource, $propertyPath, $lazyLoad = true)
    {
        if (!strpos($propertyPath, '.')) {
            return $resource->getProperty($propertyPath, true, $lazyLoad);
        }

        $parents = explode('.', $propertyPath);
        $propertyName = array_shift($parents);
        $property = $resource->getProperty($propertyName, true, $lazyLoad);
        if (!is_array($property)) {
            throw new \InvalidArgumentException(sprintf(
                'Invalid path "%s": the property "%s" is not an array.',
                $propertyPath,
                $propertyName
            ));
        }
        $value = NestedArrayUtil::getNestedArrayValue($property, $parents, $keyExists);
        if (!$keyExists) {
            throw new \InvalidArgumentException('Property not found: ' . $propertyPath);
        }

        return $value;
    }
public static function getNestedProperty(ApiResource $resource, $propertyPath, $lazyLoad = true)
    {
        if (!strpos($propertyPath, '.')) {
            return $resource->getProperty($propertyPath, true, $lazyLoad);
        }

        $parents = explode('.', $propertyPath);
        $propertyName = array_shift($parents);
        $property = $resource->getProperty($propertyName, true, $lazyLoad);
        if (!is_array($property)) {
            throw new \InvalidArgumentException(sprintf(
                'Invalid path "%s": the property "%s" is not an array.',
                $propertyPath,
                $propertyName
            ));
        }
        $value = NestedArrayUtil::getNestedArrayValue($property, $parents, $keyExists);
        if (!$keyExists) {
            throw new \InvalidArgumentException('Property not found: ' . $propertyPath);
        }

        return $value;
    }
public static function getNestedProperty ( ApiResource $ resource , $ propertyPath , $ lazyLoad = true ) { if ( ! strpos ( $ propertyPath , '.' ) ) { return $ resource -> getProperty ( $ propertyPath , true , $ lazyLoad ) ; } $ parents = explode ( '.' , $ propertyPath ) ; $ propertyName = array_shift ( $ parents ) ; $ property = $ resource -> getProperty ( $ propertyName , true , $ lazyLoad ) ; if ( ! is_array ( $ property ) ) { throw new \ InvalidArgumentException ( sprintf ( 'Invalid path "%s": the property "%s" is not an array.' , $ propertyPath , $ propertyName ) ) ; } $ value = NestedArrayUtil :: getNestedArrayValue ( $ property , $ parents , $ keyExists ) ; if ( ! $ keyExists ) { throw new \ InvalidArgumentException ( 'Property not found: ' . $ propertyPath ) ; } return $ value ; }
Get a nested property of a resource, via a dot-separated string path.

@param ApiResource $resource
@param string      $propertyPath
@param bool        $lazyLoad

@throws \InvalidArgumentException if the property is not found.

@return mixed
Get a nested property of a resource via a dot - separated string path .