小编Mvi*_*vin的帖子

如何在Symfony(Twig)中包含可重用的小部件?

所以,我仍然是Symfony和Twig的新手.我想知道如何在模板中最好地包含/创建可重用代码片段.例如,假设您有一个要在每个页面上显示的侧边栏.

{% extends 'AppBundle::base.html.twig' %}

{% block body %}
    <div id="wrapper">
        <div id="content-container">
            {# Main content... #}
        </div>
        <div id="sidebar">
            {% include 'sidebar.html.twig' %}
        </div>
    </div>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

而那个侧边栏中有几个小部件都是他们自己的逻辑.你如何创建/包含这些小部件?

到目前为止,我遇到了几个解决方案.

作为控制者

第一个是将小部件作为控制器嵌入 Twig中.

class WidgetController extends Controller
{
    public function recentArticlesWidgetAction()
    {
        // some logic to generate to required widget data
        // ...

        // Render custom widget template with data
        return $this->render('widgets/recentArticles.html.twig', array('data' => $data)
        );
    }
    public function subscribeButtonWidgetAction()
    {
        // ...

        return $this->render('widgets/subscribeButton.html.twig', array('data' => $data) …
Run Code Online (Sandbox Code Playgroud)

embed widget reusability symfony twig

7
推荐指数
1
解决办法
3604
查看次数

标签 统计

embed ×1

reusability ×1

symfony ×1

twig ×1

widget ×1