我試圖從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工作。對於我可能忽略的任何建議?
定期看到你有路線! php bin/console debug:router –