2014-09-26 100 views
0

我已經在sonata admin中創建了一個樹枝文件,我想在其中顯示使用奏鳴曲cms創建的另一個樹枝的預覽。Symfony 2 CMF:在另一個管理樹枝中嵌入內容樹枝

我發現使用渲染方法來嵌入控制器的動作。

<div class="preview"> 
         {{ render(controller('Bundle:Controller:action') }} 
</div> 

但動作需要一個參數$ contentDocument

public function Action($contentDocument, Request $request) 
{ 
} 

那麼,如何渲染預覽DIV這裏面樹枝,顯示縮略圖給用戶。 謝謝

回答

1

可以傳遞參數作爲第二個參數到控制器()細枝函數: {{渲染(控制器( '軟件包:控制器:動作',{ 'contentDocument':some_instance_of_a_content_document})}}

+0

我試過了,問題在於如何獲取樹枝中內容文檔實例的句柄?任何建議? – 2014-09-26 08:10:41

+1

您可以從樹枝中的存儲庫中獲取文檔,相關方法是CoreBundle的一部分:http ://symfony.com/doc/master/cmf/bundles/core/templating.html – 2014-09-26 11:07:40

+0

請注意,如果您打算使用ESI的render(controller()),將會有一個子請求,您不能共享請求上下文(也不能傳遞對象,只有標量值S)。那麼您需要傳遞該內容文檔的* id *並將其加載到控制器中。 – dbu 2014-09-29 06:33:04