首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony路由:可以呼叫路由,但不能转发到

Symfony路由:可以呼叫路由,但不能转发到
EN

Stack Overflow用户
提问于 2012-07-12 12:39:29
回答 2查看 2.6K关注 0票数 2

我有一条仅用于区域设置的路由,没有任何其他信息(入门页面):

代码语言:javascript
复制
homepage:
    pattern:  /{_locale}/
    defaults: { _controller: OurStartBundle:Default:index }

如果我直接调用路由,它就能工作(即: localhost/de_DE/),但是如果我转发,它会抛出错误:

无法解析控制器名"/app_dev.php/de_DE/“。

我使用Controller方法转发,如下所示:

代码语言:javascript
复制
$locale = \Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);    
return $this->forward($this->generateUrl('homepage', array('_locale' => $locale)));

有人知道为什么这不管用吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-12 12:54:20

问题是,我使用了$this->forward(),其中我想要重定向,并且应该使用$this-> redirect ()。

解决办法是:

代码语言:javascript
复制
$locale = \Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
return $this->redirect($this->generateUrl('OurStartBundle_homepage', array('_locale' => $locale)));
票数 0
EN

Stack Overflow用户

发布于 2012-07-12 12:48:01

您正在尝试将请求转发到URI,而不是包字符串。

例如,你的预言片应该是..。

代码语言:javascript
复制
$response = $this->forward('OurStartBundle:Default:index', array(
    '_locale' => 'de_DE'
));
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11452058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档