我在autoload.php
中有以下库:
$autoload['libraries'] = array('database', 'session');
我到处都需要会话库 - 除了ONE控制器之外,它只会造成麻烦。现在的问题是:
是否有可能不加载此特殊控制器的会话库,或者是从自动加载中删除它并将其添加到每个控制器的唯一选项?
答案 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
而非database
或uri
助手,Kumar的回答可能适合您。
答案 2 :(得分:0)
您可以在控制器构造函数中执行以下操作
$this->session = null;
或
unset($this->session);