Zendesk\API\Resources\ResourceAbstract::getRoute PHP Method

getRoute() public method

Returns a route and replaces tokenized parts of the string with the passed params
public getRoute ( $name, array $params = [] ) : mixed
$name
$params array
return mixed
    public function getRoute($name, array $params = [])
    {
        if (!isset($this->routes[$name])) {
            throw new RouteException('Route not found.');
        }
        $route = $this->routes[$name];
        $substitutions = array_merge($params, $this->getAdditionalRouteParams());
        foreach ($substitutions as $name => $value) {
            if (is_scalar($value)) {
                $route = str_replace('{' . $name . '}', $value, $route);
            }
        }
        return $route;
    }

Usage Example

 /**
  * Returns a route and replaces tokenized parts of the string with
  * the passed params
  *
  * @param       $name
  * @param array $params
  *
  * @return mixed The default routes, or if $name is set to `findAll`, any of the following formats
  * based on the parent chain
  * GET /api/v2/groups.json
  * GET /api/v2/users/{user_id}/groups.json
  *
  * @throws \Exception
  */
 public function getRoute($name, array $params = [])
 {
     $lastChained = $this->getLatestChainedParameter([self::class]);
     $chainableRoutes = ['findAll', 'find', 'create', 'delete', 'assignable'];
     if (empty($lastChained) || !in_array($name, $chainableRoutes)) {
         return parent::getRoute($name, $params);
     }
     $chainedResourceId = reset($lastChained);
     $chainedResourceNames = array_keys($lastChained);
     $chainedResourceName = (new $chainedResourceNames[0]($this->client))->resourceName;
     if ($name === 'assignable' && $chainedResourceName === 'groups') {
         return "{$chainedResourceName}/{$chainedResourceId}/memberships/assignable.json";
     }
     if ($name === 'create' && $chainedResourceName === 'users') {
         return "{$chainedResourceName}/{$chainedResourceId}/{$this->resourceName}.json";
     }
     if (in_array($name, ['find', 'delete']) && $chainedResourceName === 'users') {
         return "{$chainedResourceName}/{$chainedResourceId}/{$this->resourceName}/{$params['id']}.json";
     }
     if ($name === 'findAll') {
         if ($chainedResourceName === 'groups') {
             return "{$chainedResourceName}/{$chainedResourceId}/memberships.json";
         } elseif ($chainedResourceName === 'users') {
             return "{$chainedResourceName}/{$chainedResourceId}/group_memberships.json";
         }
     }
     throw new RouteException('Route not found.');
 }
All Usage Examples Of Zendesk\API\Resources\ResourceAbstract::getRoute