2012-05-27 24 views
0

我正在使用MY_Controller来处理登录功能,问题是我不知道如何阻止MY_Controller在发生AJAX请求时被扩展。看起来redirect()会停止带有非AJAX请求的子类,是否可以停止子类为对于AJAX请求执行Codeigniter类的执行行为

function __construct() { 
    parent::__construct(); 

    if(!$this->input->is_ajax_request()) { 

     if(!$this->session->userdata('userid')) { 
      //Render public menu in view 
      $this->load->view('header_public_view'); 
      if($this->login_required()) { 
       //Possibly change to render authentication view rather than redirect 
       $this->session->set_userdata('destination', $this->input->server('REQUEST_URI')); 
       redirect('authentication/login'); 
      } 
     } 
     else { 
      $this->load->model('user_model'); 
      $data['user'] = $this->user_model->get_user($this->session->userdata('userid')); 
      $this->load->view('header_user_view', $data); 
     } 

    } 
    else { 

     if(!this->session->userdata('userid') && $this->login_required) { 

      //send response telling client to redirect 

     } 

    } 
} 
+0

我们需要更多的信息,你是什么意思停止子类?阻止它做什么? – Hailwood

+0

@Hailwood更新;) –

回答

0

只要把你所有的AJAX功能集成到一个单独的控制器不exended MY_Controller

function Ajax_controller extends CI_Controller 
{ 
    //code 
}