在 Symfony2 中,重写 RoutingExtension 非常简单,我可以注入一些额外的参数。
我正在使用动态域路由到应用程序的不同部分。
{subdomain}.domain.com
Run Code Online (Sandbox Code Playgroud)
但是,我不想每次在 twig 中调用路径或 url 时都必须指定子域。
我可以创建自己独特的过滤器名称,但我不愿意。
以前,我们可以将其放入 services.yaml 文件中,它就可以工作。
services:
twig.extension.routing:
class: AppBundle\Twig\Extension\RoutingExtension
public: false
arguments:
- '@router'
- '@request_stack'
- '%domain%'
Run Code Online (Sandbox Code Playgroud)
使用 Symfony Flex,我得到的只是Unable to register extension "App\TwigExtension\TwigRoutingExtension" as it is already registered.
我已经安装了Symfony2,FOS用户包和Twitter Bootstrap.
然后我设置/app/Resources/FOSUserBundle/views/layout.html.twig模板以覆盖FOSUserBundle以使用我的网站模板.
如果我在主页上有/ login的链接,这一切都有效.
现在我想实现一个像英雄模板这样的模板,其中登录表单是主模板的一部分.
我最接近的是在主模板中使用它:
{% render controller("FOSUserBundle:Security:login") %}
Run Code Online (Sandbox Code Playgroud)
我可以覆盖布局html以不扩展主模板,但这会从/ login中删除所有样式
我有什么想法可以处理这两种情况吗?