【问题标题】:Kohana 3.2 - Get referrer URIKohana 3.2 - 获取引荐来源网址
【发布时间】:2011-09-12 14:40:52
【问题描述】:

我正在尝试使用以下代码在 Kohana 3.2 中获取引荐来源网址:

$referrer = $this->request->referrer();
var_dump($referrer);

但是该函数返回 NULL,我希望它返回我离开的页面以访问该页面。

它应该如何工作......如果是这样,我错过了什么或做错了什么?

这正在控制器中运行。

此处的文档:http://kohanaframework.org/3.2/guide/api/Request#referrer

【问题讨论】:

  • 您的控制器是否扩展了 Controller_Template?如果没有,它将无法访问$this->request
  • 它扩展了我自己的控制器模板,我可以访问 $this->request.
  • 这是否扩展了 Kohana 核心 Controller_Template? :)
  • 是的,我可以访问 $this->request。
  • 引荐来源网址是上一个网页的网址,链接是从该网址获得,而不仅仅是我离开这个网页的网页。你来自点击的链接吗?

标签: php kohana kohana-3 referrer


【解决方案1】:

我遇到的问题是由我的 Kohana 系统设置方式引起的。基本上,我的系统中间有一个 routeHandler 来控制用户采取的路线。在该脚本中生成并执行了一个新请求。

发生的事情是在创建新请求对象时没有添加引荐来源网址。我添加了以下代码,现在我可以在路由过程结束时从控制器获取引用 uri。

$referrer = $this->request->referrer();
$request = new Request($uri);
$request->referrer($referrer);

echo $request->execute()
             ->send_headers()
             ->body();

atma 建议的另一种更简洁、更原生的解决方案如下:

Request::initial()->referrer()

【讨论】:

  • 你为什么不以 kohana 方式做呢? Request::initial()->referrer() - 一种从包含引用者的子请求到达初始请求的简单方法。
  • 不知道如何获得它。试过了,它有效。所以现在我们有两个解决方案。 =D
  • @atma 我建议你把它作为答案而不是评论,所以人们可以投票,如果他发现它比他的解决方案更好,diggersworld 可能会接受它。
  • @Michal M 我不想重复回复。在这个答案中,有两种解决方案,两种解决方案都很好,所以 diggersworld 可以根据需要接受它。
猜你喜欢
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 2011-05-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多