它應該在Silex中使用symfony/twig-bridge嗎?如何在Silex中使用「渲染器」在樹枝中插入控制器
{{ render(controller('MyController')) }}
現在我有與此類似的消息:
Twig_Error_Syntax:函數 「控制器」 不」的存在......
它應該在Silex中使用symfony/twig-bridge嗎?如何在Silex中使用「渲染器」在樹枝中插入控制器
{{ render(controller('MyController')) }}
現在我有與此類似的消息:
Twig_Error_Syntax:函數 「控制器」 不」的存在......
我發現此作品:
{{ render(controller('services.controller:action', {[params]}) }}
而且你可以定義控制器作爲服務:
$app['services.controller'] = function() use ($dependecy1, .., $dependencyN){
return new \\PathToYourControllerClass($dependecy1, .., $dependencyN);
}
你可以用這種方式:
{{ render(path('your_route_id', {'id': id, 'anotherParam': param})) }}
我發現這個工作:
{{ 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 %}