如何在symfony 2中创建映射到外部URL的路由?
参考这一点,
http://symfony.com/doc/current/book/routing.html
我们可以将url模式映射到控制器和操作
应用程序/配置/ routing.yml中
blog_show:
path: /blog/{slug}
defaults: { _controller: AcmeBlogBundle:Blog:show }
我想将路径映射到外部URL。
应用程序/配置/ routing.yml中
blog_show:
path: /blog/{slug}
defaults: "www.example.com/blog"
要求是,我目前的网站在kohana中,我逐渐将它移植到symfony 2.对于我的symfony2应用程序kohana URL就像外部URL一样,我想在路由中配置这些URL并以标准方式使用它们,
例如在枝杈中,
<a href="{{ path('blog_show'}}">
Read this blog post.
</a>
所以后来当我将页面移植到Symfony时,我将不得不更改路由文件,以便我可以使用相同的blog_show键来引用url,并且我不会'必须更改所有使用urls的文件。
您可以通过使用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
从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
Symfony的路由器功能不能这样工作......
我建议你为此创建一个枝条延伸。 阅读更多关于这里:http://symfony.com/doc/current/cookbook/templating/twig_extension.html
您可以创建一个与常规url()函数非常相似的函数,以便尽可能轻松地进行迁移。
{{ legacyUrl('blog_post', {slug: 'my-blog-post'}) }}
在将博客迁移到Symfony之后,您只需创建一个名为“blog_post”的路由并将“legacyUrl”更改为“url”即可。
链接地址: http://www.djcxy.com/p/72945.html上一篇: How to create the route in symfony 2 which maps to external URL?