codeigniter重定向到不同的控制器

时间:2012-01-20 16:22:18

标签: codeigniter controller

我试图在用户获得授权时将用户定向到我的主页面。我在login_check控制器中进行用户检查并添加$this->load->view('main');页面可以加载,但主页面中的站点地址仍然显示

  

http://myprojectname/login_check

但我希望它显示

  

http://myprojectname/main

我是否必须创建一个新的“主”控制器并加载视图?这对我来说听起来多余。这是我的代码。

我的login_check.php

的一部分
private function _user_check()
{
    $this->load->model('user_query');  //load my model
    $result=$this->user_query->query($this->input->post('username'),$this->input->post('password'))             

    if($result)  //the user is in DB
    {
        $data['view']='main'; 
        $this->load->view('include/template', $data);
        //the address bar shows http://myproject/login_check in main page       

    }else{  //the user is not in DB

        $data['view']='login';
        $this->load->view('include/template', $data);
    }

}

3 个答案:

答案 0 :(得分:56)

首先,你在检查用户是否经过身份验证方面做得很差(只是将用户名/传递给模型不是最好的,应该在发送给模型之前处理/检查它)。

您可以通过包含帮助程序“URL”轻松地重定向,只需使用:

redirect('/controller/method');

或在现实世界中的例子:

redirect('/main');

Reference Link

答案 1 :(得分:0)

如果您的控制器是Rest controller

,还有另一种方法,但类似于redirect()

restserver

您可以在另一个控制器中使用rest client来调用服务器控制器上的方法

restclient

答案 2 :(得分:0)

ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: nginx
    // ...
  paths:
    - /api/myservice => myservice
    - /api/myservice/prometheus => 404 default backend.

例如,您可以拥有 /api/myservice/prometheus,路线为

redirect('controller/function');