2014-01-11 36 views
0

我在codeigniter中有以下控制器類,我想在構造函數中加載我的librarymodel,以便我可以在整個班級中使用它。Codeigniter __construct在控制器中被多次調用

class Cities extends CI_Controller{ 

public function __construct() 
{ 
    echo "a"; 
    parent::__construct(); 
    $this->load->library("cities"); 
    $this->load->model("model_city");  
} 


public function getCities($type) 
{ 
      echo "ab"; 
    if($type == "All" || $type == "*") 
    { 
     $res = $this->model_city->getCities(); 
    } 
    else 
    { 
     $res = $this->model_city->getPopularCities(); 
     $data = mysql_fetch_assoc($res); 
    } 
    var_dump($res->results()); 
} 
} 

當我訪問的URL,該代碼呼應"a"幾次,不會調用getCities功能。這是我正在訪問的網址。

http://localhost/teleprintblog/index.php/Cities/getCities/All 

這裏有什麼問題?爲什麼在不調用getCities函數的情況下一次又一次調用constructor

+0

這是一個有趣的。另外,你爲什麼打這個電話? $ data = mysql_fetch_assoc($ res); – Zarathuztra

回答

4

你不能給一個控制器和庫類同名。

這裏它一次又一次地調用控制器類,這就是爲什麼它一次又一次地調用控制器。

+1

好抓!並且絕對正確。 – Zarathuztra

+0

我正處於學習CI的開始階段。你能詳細解釋一下嗎? php的文件名和類名不應該一樣嗎? Nvm..figured它。不知何故錯過了「庫」這個詞 – asprin

+1

是的你是對的,但我想說的是: 如果你在應用程序/控制器中創建一個名爲「Cities」的Controller類,那麼你不能創建與「Cities」同名的庫類」。你必須保持類名不同 –

相關問題