【发布时间】:2016-06-02 08:34:18
【问题描述】:
在将 Symfony 从 2.6 版升级到 3.0 版后,我正在尝试启动并运行 FOSUserBundle。在 2.6 上,我基本上有一个站点、css 和 js,我们由assetic 处理,FOSUserBundle 已启动并运行,我已通过学说配置了 SQLite。
所以在再次选择这个项目之前,我进行了升级,因为不再支持 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 我得到了
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.yml"
在我的 /src/AppBundle/config/routing.xml 中。如果我保持这种方式,我什至无法加载网站,因为异常
"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 登录。如果我点击链接登录(路径如预期的那样/login)。 Symfony 告诉我:
Unable to find template "AppBundle:Pages:login.html.twig".
我不明白它为什么要在 AppBundle 文件夹中查找它?根据我阅读的内容,它应该在 FOSUserBundle 文件夹或 /app/Ressources/FOSUserBundle/... 中查找它,这是我放置它以覆盖默认模板的地方。我确认即使使用 3.0 版,这仍然是覆盖模板的方法。
我还尝试将模板放在 AppBulde/Pages/ 文件夹中。然后它找到了模板,但它仍然无法正常工作。
我多次清除缓存(这解决了资产的另一个问题)。
它看起来好像我缺少让 FOSUserBundle 正常工作的重要部分。关于我可能忽略的任何建议?
【问题讨论】:
-
定期查看您拥有的路线! php bin/控制台调试:路由器
标签: symfony