2012-06-30 58 views
3

我正在使用codeigniter 2.1.2,這是我現在的情況。我在C:\ wamp \ www \ cr8v \ application \ models中有一個名爲math.php的模型。我想在C在我的控制器來加載此:\ WAMP \ WWW \ cr8v \程序\控制器\ site.php但即時得到這個錯誤:

Unable to locate the model you have specified: math_model 

這裏的math.php的內容

<?php 
    class Math_model extends CI_Model(){ 
     public function add(){ 
      return 1+1; 
     } 
    } 
?> 

這是我的site.php

<?php 
    class Site extends CI_Controller{ 
     public function index(){ 
      $this->addstuff(); 
     } 

     public function addstuff(){ 
      $this->load->model("math_model"); 
      echo $this->math->add(); 
     } 
    } 
?> 

的在YouTube上的教程內容我跟着這一點。然而,它並沒有給我我想要的結果。我試着用Google搜索並閱讀其他相關問題,但這些信息還不夠。請幫忙。

EDITED 我讀這只是前一段時間

[http://stackoverflow.com/questions/8074368/codeigniter-php-model-access-unable-to-locate-the-model-你-已指定] [1]

現在我有這個錯誤

(!) Parse error: syntax error, unexpected '(', expecting '{' in C:\wamp\www\cr8v\application\models\math_model.php on line 2 
Call Stack 
# Time Memory Function Location 
1 0.0036 148768 {main}() ..\index.php:0 
2 0.0062 185072 require_once('C:\wamp\www\cr8v\system\core\CodeIgniter.php') ..\index.php:202 
3 0.0561 784312 call_user_func_array () ..\CodeIgniter.php:359 
4 0.0561 784360 Site->index() ..\CodeIgniter.php:359 
5 0.0561 784376 Site->addstuff() ..\site.php:4 
6 0.0561 784504 CI_Loader->model() ..\site.php:8 

回答

13

名稱必須相同在所有的地方:

這裏:

class Math_model extends CI_Model { 
    // your model 
} 

這裏:

$this->load->model("math_model"); 

當使用它:

$this->math_model->add(); 

和:在你的文件系統。因此,將math.php重命名爲math_model.php,它將起作用。

+0

呃我做了什麼,但是你說我得到了同樣的錯誤,按在那裏我編輯我的問題的一部分。這本語法錯誤等等等 – Charmie

+0

發現我的錯誤...我會發布我的答案...謝謝你們... – Charmie

3

該文件的名稱應該是math_model.php,你應該這樣稱呼它:

echo $this->math_model->add(); 
+0

呃我已經做了你所說的,但是我得到了同樣的錯誤,因爲我編輯了我的問題部分。解析錯誤等等等等。 – Charmie

+0

發現我的錯誤...我會發布我的答案...謝謝你們... – Charmie

0

的問題已經真正回答這個問題是這樣的:

<?php 
    class Math_model extends CI_Model(){ 
     //so on 
     } 
?> 

..它是宣佈類後的開放和遺憾parabhesis .. 它應該是:

<?php 
    class Math_model extends CI_Model{ 
     //so on 
     } 
?> 

非常感謝那些回覆的人

0

那麼,應該經常注意的是,函數名不應該與控制器或型號名稱(如下面)一起復制;

<?php 
    class Abc extends CI_Controller{ 

public function abc(){} // this confused CI in loading 

} 

這可能是開發新CI樂於助人,