参考这个,
http://symfony.com/doc/current/book/routing.html
我们可以将url模式映射到控制器和操作
应用程序/配置/ routing.yml中
blog_show:
path: /blog/{slug}
defaults: { _controller: AcmeBlogBundle:Blog:show }
我想将路径映射到外部网址。
应用程序/配置/ routing.yml中
blog_show:
path: /blog/{slug}
defaults: "www.example.com/blog"
要求是,我现在的网站是kohana,我将它逐渐移植到symfony 2.对于我的symfony2 app kohana URL就像外部网址,我想在路由中配置这些网址并以标准方式使用它们,< / p>
e.g。在Twig,
<a href="{{ path('blog_show'}}">
Read this blog post.
</a>
所以稍后当我将我的页面移植到Symfony时,我将只需要更改路由文件,这样我就可以使用相同的blog_show键来引用url,而且我不必更改我使用url的所有文件。
答案 0 :(得分:8)
您可以使用其中一个Symfony框架控制器执行此操作,但我不确定这如何适用于参数:
blog_show:
path: /blog/{slug}
defaults:
_controller: FrameworkBundle:Redirect:urlRedirect
path: "http://example.com/blog"
permanent: true
请注意,path: /blog/{slug}
直接抓取了slug,但path: "http://example.com/blog/{slug}"
无效。
来源:http://symfony.com/doc/current/cookbook/routing/redirect_in_config.html
答案 1 :(得分:1)
从Symfony 2.2开始,可以通过向路由添加主机约束来实现:
的routing.yml
user_homepage:
path: /path/to/whatever
host: "sub.domain.ext"
defaults:
_controller: forExampleAnyNamespaceBundle:Controller:action
这是关于此问题的官方博客文章:http://symfony.com/blog/new-in-symfony-2-2-url-host-support-in-the-routing
答案 2 :(得分:-2)
Symfony的路由器功能无法正常工作......
我建议你为此创建一个Twig扩展。在这里阅读更多相关信息: http://symfony.com/doc/current/cookbook/templating/twig_extension.html
您可以创建一个与常规url()函数非常相似的函数,这样您就可以尽可能轻松地进行迁移。
{{ legacyUrl('blog_post', {slug: 'my-blog-post'}) }}
将博客迁移到Symfony之后,您只需创建一个名为“blog_post”的路径并将“legacyUrl”更改为“url”。
答案 3 :(得分:-2)
似乎没有本地Symfony方法来处理这个问题。