2014-01-28 65 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的(我使用學說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 %} 
相關問題