2014-01-19 109 views
2

我已經登記表格樣式(I加入fields.html.twig改變了一些部件和全局加載它),但是樣式將不被施加到登錄表單元素,作爲html標籤被渲染在這裏直接,不使用Symfony的助手。我是否應該重寫FOS安全控制器以獲取表單變量或其他內容?Symfony2的FOSUserBundle登錄表單造型

回答

0

當前SecurityController:renderLogin操作不會返回包含FormView實例的變量。

表單的HTML代碼(因此可用於樣式的類)被硬編碼到登錄模板中。

您有以下兩個選項來覆蓋包含HTML代碼的模板。

1)覆蓋的應用程序模板/資源/ FOSUserBundle

你可以簡單地通過將一個login.html.twig到該文件夾​​覆蓋模板FosUserBundle:Security:login.html.twig

app/Resources/FOSUserBundle/views/Security/ 

只要確保你有...

{% extends "FOSUserBundle::layout.html.twig" %} 

...在您新創建的模板中。

2)使用束繼承

重寫模板的另一種方式改寫模板將使用束繼承

因此,您將通過返回'FOSUserBundle'中的getParent()方法創建一個擴展FOSUserBundle的新捆綁包。

class ExtendingBundle extends Bundle 
{ 
    public function getParent() 
    { 
     return 'FOSUserBundle'; 
    } 
} 

不要忘記在app/AppKernel.php註冊捆綁包。現在

你可以在

src\Vendor\ExtendingBundle\Resources\views\login.html.twig 

文檔

存儲新login.html.twig模板瞭解更多關於在documentation模板繼承。

+1

是的,我知道這是可能的,並已經做到了登記表。但是我怎樣才能使用symfony的助手(以便它會使用全局樣式)登錄窗體?什麼是正確的方法? – bargoras

相關問題