我的codeigniter网站自动加载会话。我有一个我创建的XML API页面,但由于该自动加载,我收到会话错误。我不想在此控制器上加载会话,但我不想在所有其他控制器上手动加载会话。可以这样做吗?
答案 0 :(得分:2)
使用基本控制器加载会话类而不是autoload.php
并让控制器扩展它。更多信息请访问:http://ellislab.com/codeigniter/user-guide/general/core_classes.html
// application/core/MY_Controller.php
class MY_Controller extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->library('session');
}
}
// you may add additional base controller classes here
您必须将此控制器扩展为您希望有权访问会话类的控制器,所以很遗憾,您必须对现有控制器进行一些编辑:
class UserController extends MY_Controller {
public function index()
{
// session class is loaded
}
}
其他控制器可以继续扩展CI_Controller
,并且不会加载会话类。
我对所有CI项目都使用此方法,很少使用autoloader.php
,它可以提供更大的灵活性。