Generates an internal URI for a given controller.
This method uses the "_internal" route, which should be available.
string $controller A controller name to execute (a string like BlogBundle:Post:index), or a relative URI:
array $attributes An array of request attributes:
array $query An array of request query parameters:
boolean $secure:
string An internal URI
public function generateInternalUri($controller, array $attributes = array(), array $query = array(), $secure = true) {
if (0 === strpos($controller, '/')) {
return $controller;
}
$path = http_build_query($attributes, '', '&');
$uri = $this->container
->get('router')
->generate($secure ? '_internal' : '_internal_public', array(
'controller' => $controller,
'path' => $path ?: 'none',
'_format' => $this->container
->get('request')
->getRequestFormat(),
));
if ($queryString = http_build_query($query, '', '&')) {
$uri .= '?' . $queryString;
}
return $uri;
}