protected function getFormActionUri()
{
if ($this->formActionUri !== null) {
return $this->formActionUri;
}
if ($this->hasArgument('actionUri')) {
$this->formActionUri = $this->arguments['actionUri'];
} else {
$uriBuilder = $this->controllerContext->getUriBuilder();
if ($this->arguments['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.', 1361354942);
}
$uriBuilder = clone $uriBuilder;
$uriBuilder->setRequest($request->getParentRequest());
}
$uriBuilder->reset()->setSection($this->arguments['section'])->setCreateAbsoluteUri($this->arguments['absolute'])->setAddQueryString($this->arguments['addQueryString'])->setFormat($this->arguments['format']);
if (is_array($this->arguments['additionalParams'])) {
$uriBuilder->setArguments($this->arguments['additionalParams']);
}
if (is_array($this->arguments['argumentsToBeExcludedFromQueryString'])) {
$uriBuilder->setArgumentsToBeExcludedFromQueryString($this->arguments['argumentsToBeExcludedFromQueryString']);
}
try {
$this->formActionUri = $uriBuilder->uriFor($this->arguments['action'], $this->arguments['arguments'], $this->arguments['controller'], $this->arguments['package'], $this->arguments['subpackage']);
} catch (\Exception $exception) {
throw new ViewHelper\Exception($exception->getMessage(), $exception->getCode(), $exception);
}
}
return $this->formActionUri;
}