2015-06-29 5 views
0

Я хочу отобразить контроллер из своего пользовательского класса. Я знаю, что мне нужно использовать функцию forward, но я не знаю, с каким сервисом я должен пользоваться?Symfony2 визуализировать контроллер от обслуживания?

я нашел что-то вроде этого

$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); 

Это вперед функция, но если я использую его я получаю заголовки.

Как скрыть заголовок из функции forward?

Мне нужно это, потому что я хочу визуализировать пользовательскую логику (получить от БД и других). Это моя идея для модулей.

ответ

0

После прочтения сообщения о контроллере utils на whitewashing.de Я создал свою собственную утилиту utils, которую я вставляю в каждый контроллер.

Передняя функция там отлично работает до НФ 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); 
} 
Смежные вопросы