2016-08-07 114 views
2

我試圖在控制器中加載base_url(),但codeigniter不加載helper('url')。我也調用autoload的助手和構造函數都在鉤子中,但它仍然不工作,並顯示錯誤「嘗試獲取非對象的屬性」。無法在codeigniter中加載url助手

任何想法如何重定向?

我的代碼:

if (!defined('BASEPATH')) exit('No direct script access allowed'); 

class Auth_hook { 

    protected $CI; 

    public function __construct() { 
     $this->CI =& get_instance(); 
     $this->CI->load->helper('url'); 
    } 

    public function index(){ 
     redirect(base_url('auth/login')); 

     print_r("hello!!"); 
     if(isset($_SESSION['name']) == 'TRUE'){ 
     redirect(base_url('auth/admin')); 
     } 
     else { 
     redirect(base_url('auth/login')); 
     } 
    } 
} 
+0

加載它只是一次。我建議將它從掛鉤中移除並將其放在'FCPATH.'config/autoload.php''文件中。如果你沒有使用預製系統鉤子。否則,首先加載'APPPATH.'config/autoload.php''。 – Tpojka

回答

1

如何:

class Auth_hook { 

    protected $CI; 

    public function __construct() { 
     $this->CI =& get_instance(); 
    } 

    public function index(){ 
    // can communicate back with CI by using $this->CI 
    $this->CI->load->helper('url'); 

    redirect(base_url('auth/login')); 

    print_r("hello!!"); 
    if(isset($_SESSION['name']) == 'TRUE'){ 
     redirect(base_url('auth/admin')); 
    } 
    else { 
     redirect(base_url('auth/login')); 
    } 
    } 
}