已经有一段时间了,因为我不使用CI而且我有一个先发制人的怀疑。
修改
class MY_Controller extends CI_Controller {
public function __construct() {
parent::__construct();
if(!$this->session->userdata('usuario')) {
$this->load->view('login');
}
}
}
class Home extends MY_Controller {
public function __construct() {
parent::__construct();
Template::set('title', 'Login');
Template::set('view', 'home');
}
public function index() {
$this->load->view('template');
}
}
会发生的是用户会话无效,它会加载登录视图,但在我的Home控制器中,构造方法调用视图 home ,其加载两个视图在同一页面上。
答案 0 :(得分:1)
请勿将其放入钩子中,将其放在MY_Controller
方法的__construct()
中。
http://codeigniter.com/user_guide/general/core_classes.html
示例:
// file application/core/MY_Controller.php
class MY_Controller extends CI_Controller {
function __construct()
{
parent::__construct();
// your code here
}
}
只需确保在要运行此代码的控制器中扩展MY_Controller
而不是CI_Controller
。如果您必须更改所有这些代码,那就这样吧。
更新:您还可以尝试post_controller_constructor
<强> post_controller_constructor 强>
在实例化控制器之后立即调用,但在任何方法调用发生之前调用。
但我仍然更喜欢MY_Controller方法,因为它更灵活。