Codeigniter:更改一个控制器的自动加载库?

时间:2014-02-05 12:40:31

标签: php codeigniter autoload

我在autoload.php中有以下库:

$autoload['libraries'] = array('database', 'session');

我到处都需要会话库 - 除了ONE控制器之外,它只会造成麻烦。现在的问题是:

是否有可能不加载此特殊控制器的会话库,或者是从自动加载中删除它并将其添加到每个控制器的唯一选项?

3 个答案:

答案 0 :(得分:4)

在autoload.php中:

$autoload['libraries'] = array('database');

$CI =& get_instance();
if ($CI->router->fetch_class()!='conflictingcontroller') array_push($autoload['libraries'], 'session');

答案 1 :(得分:2)

取自这个答案:Link

  

自动加载适用于网站全球项目。

     

更清洁的解决方案可能是扩展控制器并加载   该控制器的构造函数中的库。那你所有的   控制器从该控制器扩展,除了你没有控制器   想要加载该库 - 那些可以扩展原始CI   控制器。

     

那应该带你< 5分钟实施,你不必   黑客攻击。

然而,由于它是session而非databaseuri助手,Kumar的回答可能适合您。

答案 2 :(得分:0)

您可以在控制器构造函数中执行以下操作

$this->session = null; 

unset($this->session);