public function render($action, array $arguments = array(), $controller = null, $package = null, $subpackage = null, $section = '', $format = '', array $additionalParams = array(), $absolute = false, $addQueryString = false, array $argumentsToBeExcludedFromQueryString = array(), $useParentRequest = false, $useMainRequest = false)
{
$uriBuilder = $this->controllerContext->getUriBuilder();
if ($useParentRequest === true) {
$request = $this->controllerContext->getRequest();
if ($request->isMainRequest()) {
throw new ViewHelper\Exception('You can\'t use the parent Request, you are already in the MainRequest.', 1360590758);
}
$uriBuilder = clone $uriBuilder;
$uriBuilder->setRequest($request->getParentRequest());
} elseif ($useMainRequest === true) {
$request = $this->controllerContext->getRequest();
if (!$request->isMainRequest()) {
$uriBuilder = clone $uriBuilder;
$uriBuilder->setRequest($request->getMainRequest());
}
}
$uriBuilder->reset()->setSection($section)->setCreateAbsoluteUri($absolute)->setArguments($additionalParams)->setAddQueryString($addQueryString)->setArgumentsToBeExcludedFromQueryString($argumentsToBeExcludedFromQueryString)->setFormat($format);
try {
$uri = $uriBuilder->uriFor($action, $arguments, $controller, $package, $subpackage);
} catch (\Exception $exception) {
throw new ViewHelper\Exception($exception->getMessage(), $exception->getCode(), $exception);
}
return $uri;
}