我使用Symfony Flex进行了新的Symfony安装,新的骨架属于下一个Symfony 4目录结构 . 接下来,我将从树枝模板中嵌入一个控制器 .
我试过这样做:
<div id="sidebar">
{{ render(controller(
'App:Article:recentArticles',
{ 'max': 3 }
)) }}
</div>
与如何将请求转发给另一个控制器相同,我尝试过:
$response = $this->forward('App:Something:fancy', array(
'name' => $name,
'color' => 'green',
));
但是没有用 .
有办法做到这一点?
3 回答
当我们使用简短约定
a:b:c
来引用控制器时,它仅在控制器属于已安装的包时才起作用 . 对于Symfony 4结构,默认情况下您的应用程序源不是捆绑包,因此上述操作不起作用 .对于Symfony 4方法,您可以使用其完全限定的类名称和方法来引用此控制器:
将控制器嵌入到Twig模板中:
您必须将
Bundle
添加到App
:你可以阅读有关嵌入Controller in a Template (Twig)的内容
这是执行此操作的正确方法:
资料来源:https://symfony.com/doc/master/templating/embedding_controllers.html