Symfony2从服务渲染控制器?

时间:2015-06-29 06:38:36

标签: symfony

我想从我的自定义类渲染控制器。我知道我应该使用前进功能,但我不知道我必须使用的服务吗?

我找到了类似的东西

$subRequest = $this->container->get('request')->duplicate(
array(), 
null, 
array('topicId' => $topicId,'_controller' => 'SomeBundle:Topic:close'));

return $this->container->get('http_kernel')
    ->handle($subRequest, HttpKernelInterface::SUB_REQUEST);

它是一个前向功能,但如果我使用它,我会得到标题。

如何隐藏前向功能的标题?

我需要它,因为我想渲染自定义逻辑(从DB和其他)获取。这是我对模块的想法。

2 个答案:

答案 0 :(得分:0)

whitewashing.de上阅读有关控制器工具的帖子后 我创建了自己的utils函数,我在每个控制器中注入。

其中的向前功能可以在sf 2.7下工作,看起来像这样:

/**
 * Forwards the request to another controller.
 *
 * @param string $controller The controller name (a string like BlogBundle:Post:index)
 * @param array  $path       An array of path parameters
 * @param array  $query      An array of query parameters
 *
 * @return Response A Response instance
 */
public function forward($controller, array $path = array(), array $query = array())
{
    $path['_controller'] = $controller;
    $subRequest = $this->container->get('request_stack')->getCurrentRequest()->duplicate($query, null, $path);

    return $this->container->get('http_kernel')->handle($subRequest, HttpKernelInterface::SUB_REQUEST);
}

答案 1 :(得分:0)

查看forwarding requests的文档。