2014-02-05 35 views
0

我有以下的庫中autoload.phpCodeigniter:更改一個控制器的自動加載庫?

​​

我處處都需要會話LIB - 除了一個控制器,它僅引起麻煩。現在的問題是:

是否有可能不加載該特殊控制器的會話庫,或者是唯一的選項將其從自動加載中刪除並將其添加到每個單獨的控制器中?

+2

我寧願修復** **一個問題,而不是與自動加載搞亂...... – Kyslik

回答

0

你可以在你的控制器構造如下做

$this->session = null; 

unset($this->session); 
+0

但是,當它加載有有已經在DB插入/更新會議桌,對嗎?這是我想避免這個控制器,因爲它是鎖定DB。 – Petra

+0

你是否將會話存儲在表中? –

+0

當然..否則他們不會鎖定表格。 ^^ – Petra

2

從這個答案摘自:Link

自動裝車系統是爲網站的全球項目。

一個更清潔的解決方案可能是擴展控制器並在該新控制器的構造函數中加載 庫。然後,您的所有 控制器都從該控制器延伸,但您不需要加載該庫的那個控制器 - 那些控制器可以擴展原始的CI 控制器。

這應該帶你< 5分鐘實施,你將不必 破解任何東西。

然而,因爲它是一個session而不是databaseuri幫手,庫馬爾的答案可能爲你工作。

3

在你autoload.php:

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

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

沒有測試過,因爲我已經做了'長'版,但如果它的作品非常好。謝謝。它會稍後嘗試。 – Petra