2012-09-20 97 views
0

我在My_Controller使用這種重映射法philsturgeon圖書館笨重定向在__remap方法My_Controller

<?php 
class MY_Controller extends MX_Controller 
{ 
    protected $data; 
    protected $view; 

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

    public function _remap($method, $parameters) 
    { 
     if($this->view === TRUE OR $this->view === '') 
     { 
      $this->template->build('default'); 
     }else if(strlen($this->view) > 0){ 
      $this->template->build($this->view); 
     }else{ 
      $checkpoint = $this->session->flashdata('exit'); 
      if($checkpoint){ 
       exit(); 
      }else{ 
       $this->session->set_flashdata('exit',TRUE); 
      } 
      $this->redirect = base_url() . $this->redirect; 
      redirect($this->redirect); 
     } 

    } 
} 

在這裏,我想在孩子控制我做什麼來處理這種情況

<?php 
class Home extends My_Controller { 

    public $redirect = '/admin/dashboard'; 
    public $view = FALSE; 

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

    function dashboard($days = '') 
    { 
     if (!$this->session->userdata('session_admin')) 
     { 
      $this->redirect = '/admin/login'; 
     }else{ 
      //display dashboard 
     } 
    } 

    function login() 
    { 
     if ($this->session->userdata('session_user')){ 
      $this->redirect; 
     }else{ 
      $this->view = 'login'; //Load login view through remap method with template library 
     } 
    } 
} 
知道

正如你所看到的,它出現在循環中,並在我的條件下退出My_Controller。雖然我創建了這個,但我想知道如何處理重定向在這裏。什麼應該是優化的解決方案。有什麼建議麼?

+0

可能不是答案,但在'login()'函數中,這看起來有點不對? 'if($ this-> session-> userdata('session_user')){this-> redirect; } else {''$ this-> redirect;'什麼也不做。 – manavo

回答

0

我已經解決了使用閃存數據的問題,我正在設置閃存數據。當它進入循環時,它檢查閃存消息是否存在使用退出,否則設置閃存數據。