【问题标题】:Codeigniter Controller return to previous pageCodeigniter 控制器返回上一页
【发布时间】:2016-05-20 14:33:53
【问题描述】:

我想问你我怎样才能代替控制器代码末尾的 $this->load->view('some_view.php') 将用户返回到他调用控制器方法的页面?简单的 return 语句不起作用。

即。

public function someMethod($IDCustomer) {

     $this->Some_modal->persist($IDCustomer);   
     // how to return to previous page instead of line after?
     // i've used $this->load->view('someView.php');
}

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    这应该有助于http://www.codeigniter.com/user_guide/libraries/user_agent.html

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

    或直接 PHP:

    redirect($_SERVER['HTTP_REFERER']);
    

    【讨论】:

    • 有什么方法可以重定向到刷新的上一页吗?还是简单地刷新上一页?
    • 我不明白你的意思。
    • 我已经尝试过这个解决方案,但我没有得到预期的结果。让我们试着说清楚,我有一张有歌曲的桌子(第一列我有购买按钮,如果我还没有购买它,我的视图会根据事实生成它,如果我已经购买了它,我会放置而不是“购物车图标=购买按钮“通知歌曲已经购买的东西。当我调用控制器方法并且当我返回时,我的视图不会再次生成(除非我刷新页面,否则我不会看到我已经购买的歌曲的变化) .
    • 重定向($_SERVER['HTTP_REFERER']);为我工作。谢谢!
    【解决方案2】:

    我在某个帖子上找到了答案。

    在您想要返回的页面中可以执行以下操作:

    $this->session->set_userdata('referred_from', current_url());

    然后重定向回那个页面

    $referred_from = $this->session->userdata('referred_from');
    redirect($referred_from, 'refresh');
    

    【讨论】:

      【解决方案3】:

      在 Codeigniter 4 中,您可以使用 url helper 中的 previous_url() 函数

      查找更多https://codeigniter.com/user_guide/helpers/url_helper.html

      【讨论】:

        【解决方案4】:

        试过return redirect()->to($_SERVER['HTTP_REFERER']);,效果不错。

        【讨论】:

          【解决方案5】:

          我试过header('location:'.$_SERVER['HTTP_REFERER']);,效果很好。

          只是一个简单的旧 PHP 代码。

          【讨论】:

            【解决方案6】:

            使用REDIRECT_QUERY_STRING 替代HTTP_REFERRER

            // set in session redirect back URL in your common is_logged_in function if user is not logged in
            
            $CI->session->set_userdata('redirect_back', $_SERVER['REDIRECT_QUERY_STRING']); 
            
            
            // below code user after successful login in auth.php library
            
            if($this->ci->session->userdata('redirect_back')){
                $redirectBackUrl = $this->ci->session->userdata('redirect_back');
                $this->ci->session->unset_userdata('redirect_back');
                redirect(base_url() . $redirectBackUrl);
            }
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-07-06
              • 2012-02-21
              • 1970-01-01
              • 2012-08-29
              • 1970-01-01
              • 2012-03-04
              • 2020-08-18
              • 2019-10-06
              相关资源
              最近更新 更多