2014-01-28 4 views

ответ

1

Я нашел этот рабочий:

{{ render(controller('services.controller:action', {[params]}) }} 

И вы можете определить контроллер в качестве службы:

$app['services.controller'] = function() use ($dependecy1, .., $dependencyN){ 
    return new \\PathToYourControllerClass($dependecy1, .., $dependencyN); 
} 
2

Вы можете использовать его таким образом:

{{ render(path('your_route_id', {'id': id, 'anotherParam': param})) }} 
1

Я нашел эту работу:

{{ render(controller('Full\\Namespace\\To\\Your\\Controller::listAction')) }} 

пожалуйста, не забудьте двойной слеш '\\'

Пример:

{{ render(controller('Acme\\ProductController::listAction')) }} 

В вашем ProductController (я использую Doctrine 2 в этом примере):

public function listAction(Application $application) 
{ 
    $em = $application['orm.em']; 

    $produits = $em->getRepository('Acme\Entity\Produit')->findAll(); 

    return $application['twig']->render('list.html.twig', array(
     'products' => $products 
    )); 
} 

Затем в list.html.twig

{% for product in products %} 
    <h2> {{ product.name }} </h2> 
{% endfor %} 
Смежные вопросы