2016-02-20 106 views
1

我試圖從2.6版本升級Symfony到3.0後,啓動並運行FOSUserBundle。在2.6上我基本上有一個站點,css和js,我們是通過資產來處理的,FOSUserBundle已經啓動並運行了,我已經通過doctrine配置了SQLite。帶Symfony 3.0的FOSUserBundle

所以在再次選擇這個項目之前,我做了升級,因爲2.6不再被支持。

因爲我是Symfony的新手,我所做的一切都是從documentation複製的。 FOSUserBundle在開發模式下顯示爲已啓用的軟件包。所以我的代碼是在/src/AppBundle。我正在使用FOSUserBundle的2.0-dev版本(準確地說e770bfa)。

這裏是我的模板的一部分:

<li> 
{% if is_granted("IS_AUTHENTICATED_REMEMBERED") %} 
    <a href="{{ path('fos_user_security_logout') }}"> 
     {{ 'layout.logout'|trans({}, 'FOSUserBundle') }} 
    </a> 
{% else %} 
    <a href="{{ path('fos_user_security_login') }}"> 
     {{ 'layout.login'|trans({}, 'FOSUserBundle') }} 
    </a> 
{% endif %} 
</li> 

在2.6我在/src/AppBundle/config/routing.xml

fos_user: 
    resource: "@FOSUserBundle/Resources/config/routing/all.yml" 

。如果我繼續保持這樣我甚至無法加載網站,因爲異常

"Unable to generate a URL for the named route "fos_user_security_login" as such route does not exist." 

的把它放在/app/config/routing.yml我的網站的節目和其他途徑定義的後/ src/AppBundle/config/routing.xml工作。所以這個文件沒什麼問題。

當網站顯示鏈接的翻譯被打破。

{{ 'layout.login'|trans({}, 'FOSUserBundle') }} 

顯示爲「layout.login」而不是2.6像以前一樣登錄。如果我點擊鏈接登錄(路徑如預期/登錄)。 Symfony告訴我:

Unable to find template "AppBundle:Pages:login.html.twig". 

我不明白爲什麼它在AppBundle文件夾中查找它?根據我閱讀的內容,應該在FOSUserBundle文件夾或/app/Ressources/FOSUserBundle/...中查找它,這是我用它來覆蓋默認模板的地方。我確認,即使使用3.0版,這仍然是重寫模板的方式。

我也嘗試將該模板放在AppBulde/Pages/文件夾中。然後它找到了模板,但它仍然不起作用。

我多次清除緩存(這解決了資產的另一個問題)。

它尋找我,就像我錯過了一個重要的部分讓FOSUserBundle工作。對於我可能忽略的任何建議?

+0

定期看到你有路線! php bin/console debug:router –

回答

2

FOSUserBundle似乎是用「XML」文件路由,你必須在您的routing.xml的「陽明」文件:

fos_user: 
    resource: "@FOSUserBundle/Resources/config/routing/all.yml" 
+0

或嘗試將該文件複製爲* AppBundle/Routing/FOSUserBundle/all.xml *,並導入到您的* routing.xml *「@ AppBundle/Routing/FOSUserBundle/all.xml」 –