2012-05-26 129 views
0

我希望這不是模糊的,我仍然是MVC-L框架概念的初學者。我正在創建一個Open-cart 1.5.1.3模塊,並且從我可以收集的內容中可以看出OC 1.5+會在您首次安裝模塊時自動從您的控制器中調用install()函數(如果您提供了安裝()函數)。我在遇到麻煩的地方是實際調用了一個函數(它創建了一個新的數據庫表),該函數位於我的控制器函數install()中的模型中。如何使用OpenCart模塊從控制器中的模型調用函數?

這裏是我的代碼已經:

控制器:TrademeXml

public function install() { 
    $this->load->model('model/TrademeXml'); 
// Create table to store TradeMe ID 
$this->model_model_TradmeXml->createModuleTables(); 
} 

型號:在安裝的過程中TradmeXml

public function createModuleTables() { 
    $query = $this->db->query("CREATE TABLE IF NOT EXISTS " . DB_PREFIX . "trademeID (tid INT(30), PRIMARY KEY(tid)"); 
} 

安裝函數被調用模塊,但我得到以下錯誤:

致命錯誤:調用一個成員函數createModuleTables()中d的非對象:\ XAMPP \ htdocs中\存儲\管理員\控制器\模塊\ TrademeXml.php

+0

所以你有你的trademexml模型位於'/ catalog/model/model/trademexml.php'? –

+0

啊,不,它位於/admin/model/module/trademexml.php – JasonMortonNZ

+0

可能重複的[調用一個非對象的成員函數](http://stackoverflow.com/questions/54566/call-to-一個成員函數上-A-非對象) –

回答

3
$this->load->model('module/tradexml'); 
$this->model_module_tradexml->createModuleTables(); 
0

我缺少這個...

public function index() { 
     $this->install(); 
相關問題