$ this-> load-> model()在CodeIgniter中不起作用

时间:2012-06-30 19:01:29

标签: codeigniter model

我正在使用CodeIgniter 2.1.2,现在就是我的情况。我在C:\wamp\www\cr8v\application\models中有一个名为math.php的模型。我试图从C:\wamp\www\cr8v\application\controllers\site.php在我的控制器中加载它但我收到此错误:

  

无法找到您指定的模型: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的教程中遵循了这一点。然而,它并没有给我我想要的输出。我已经尝试使用谷歌搜索并阅读其他相关问题,但这些信息还不够。

我刚才读过this

现在我有以下错误:

( ! ) 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

5 个答案:

答案 0 :(得分:13)

所有地方的名称都必须相同:

下面:

class Math_model extends CI_Model {
   // your model
}

下面:

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

使用时:

$this->math_model->add();

并且:在您的文件系统中。因此,将math.php重命名为math_model.php,它会起作用。

答案 1 :(得分:3)

该文件的名称应为math_model.php,您应该这样称呼它:

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

答案 2 :(得分:0)

这个问题已经得到了回答,问题是:

 <?php
    class Math_model extends CI_Model(){
        //so on
        } 
 ?>
宣布上课后,这是一个开放式和紧密的画面。 它应该是:

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

非常感谢那些回复的人

答案 3 :(得分:0)

嗯,应该始终注意,不应使用控制器或型号名称复制功能名称,如下所示;

<?php
  class Abc extends CI_Controller{

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

}

这可能对CI新手的开发者有用,

答案 4 :(得分:0)

文件名和型号名应该相同 试试这个

class Math_model extends CI_Model {
   // your code
}

和文件名 应该是Math_model.php