Должна ли она работать в Силексе с symfony / twig-bridge?
{{ 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 (я использую 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 )); }
Затем в вашем списке.html.twig
{% for product in products %} <h2> {{ product.name }} </h2> {% endfor %}