簡體   English   中英

從Twig擴展名返回模板

[英]Returning a Template from a Twig Extension

我有一個放置在網站許多頁面上的表單,並且我想編寫一個Twig Extension來構建和處理該表單。 我以為,如果我注入Twig模板服務,並使用呈現的表單來呈現模板,它將可以正常工作。 但是我得到了一個循環參考。 我的問題是如何從擴展名中返回該模板?

假設您的操作具有以下形式:

public function formAction()
{
    //Code goes here with no difference from a regular action
    return $this->render('MyBundle:Base:form.html.twig', array('form' => $form->createView()));
}

假設MyBundle:Base:form.html.twig是一個Twig模板,其中包含渲染表單所需的所有標記。 假設控制器位於MyBundle:Form:form ,並且每個頁面(但表單模板)都有一個模板MyBundle:Base:template.html.twig 在該模板中,根據需要添加以下行:

{{ render(controller('MyBundle:Form:form')) }}

這樣,您可以在所有頁面中“注入”所需的任何方法。 然后,您可以將表單的操作設置為任何控制器操作,以便它可以正確處理它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM