CodeIgniter - 从多个视图调用的Controller,如何重定向?

时间:2018-06-01 22:20:40

标签: php codeigniter

我有一个控制器让我们说Post有一个可以从多个视图调用的函数like()。例如,我可以从时间轴(例如post/like/4)或用户配置文件(例如post/index)调用user/view/3。我在调用控制器之后遇到重定向问题我不知道如何处理不同的重定向可能性。我尝试使用current_url()但是当在控制器中调用此方法时,当前网址为{{1}所以它以无限重定向结束。

有没有办法告诉控制器哪个URL调用它并获取它以重定向到这个特定的URL?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您可以使用引用者的URL。请检查此https://www.codeigniter.com/user_guide/libraries/user_agent.html

$this->load->library('user_agent');
if ($this->agent->is_referral()){
  redirect($this->agent->referrer());
}

这个怎么样?

redirect($_SERVER['HTTP_REFERER']);

或者您可以传递下一个网址并在之后重定向

<a href="/post/like/4?next=current/url">Like</a>

nextUrl = isset($_GET['next']) ? $_GET['next'] : '/default/url';
redirect(nextUrl);

答案 1 :(得分:0)

您正在寻找的是“参考”:

$httpReferer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;

请注意:这不是一种万无一失的方法。我可能会使用session var。