2013-10-10 32 views
0

對Symfony來說我是新的,我想知道這個想法是否可以用Symfony2來完成。在一個視圖中顯示來自不同控制器的許多動作Symfony

我需要創建一個Dashboard,其中顯示許多圖表。每個圖表都有一個模型的數據,但所有內容都應顯示在一個模板中。

當我嘗試從同一個視圖中調用不同的動作時,問題就出現了,因爲每個動作都需要一個路由,所以我想創建一個控制器動作,調用所有其他動作並在一個方法中呈現它。

這個想法是否實惠?還有其他的最佳做法嗎?

的觀點應該是類似的東西:

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

{% block body %} 
<div id="cabecera"> 
    <h1>Dashboard</h1> 
</div> 

<div id="contenido"> 
    {% block contenido %}{% endblock %} 
</div> 
<div id="anonym_users"> 
    {% block anonym_users %}{% endblock %} 
</div> 
<div id="registered_users"> 
    {% block registered_users %}{% endblock %} 
</div> 
<div id="check_ins"> 
    {% block check_ins %}{% endblock %} 
</div> 

<div id="pie"> 
    <hr/> 
    <div align="center">- footer -</div> 
</div> 
{% endblock %} 

這裏的每塊將與來自不同型號/控制器的數據有不同的看法。

非常感謝提前和對不起,如果這是一個真正的新手問題,這就是我。

+0

那麼AJAX如何使用自己的路線呈現每個圖表呢? – agapitocandemor

回答

3

可以使用片段做到這一點:http://symfony.com/blog/new-in-symfony-2-2-the-new-fragment-sub-framework

您可以通過其邏輯路徑渲染器,如:

{{ render(controller('Bundle:controller:action')) }} 

因爲您可以根據需要使用盡可能多的控制器動作做到這一點。然而,

的視圖的預防措施避免使用執行顯著任務控制器片段,因爲用戶可能會被迫等待許多數字處理意見出現時,他們只需要看到一個。

此外,避免將任何形式的片段(其形式處理/驗證惡夢)。使每個片段類似於子儀表板,用戶可以在其中選擇將其採取到專用表單的操作。

編輯:

關於當前的代碼,在嫩枝,塊只能通過延長塊的鼻祖模板填充,那只是一個模板或模板進一步環比下滑。你不能'包括'一個模板可以期望它能夠訪問包含者的塊

相關問題