它应该在Silex中使用symfony / twig-bridge吗?
{{ render(controller('MyController')) }}
现在我有这样的消息:
Twig_Error_Syntax:“...
中不存在”控制器“功能
答案 0 :(得分:2)
你可以这样使用它:
{{ render(path('your_route_id', {'id': id, 'anotherParam': param})) }}
答案 1 :(得分:1)
我发现这有效:
{{ render(controller('services.controller:action', {[params]}) }}
您可以将控制器定义为服务:
$app['services.controller'] = function() use ($dependecy1, .., $dependencyN){
return new \\PathToYourControllerClass($dependecy1, .., $dependencyN);
}
答案 2 :(得分: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 %}