4

我正在使用 CodeIgniter 2.1.2,这就是我现在的情况。我有一个名为 math.php 的模型C:\wamp\www\cr8v\application\models。我正在尝试将其加载到我的控制器中,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 的教程中遵循了这一点。然而,它并没有给我我想要的输出。我试过用谷歌搜索它并阅读其他相关问题,但是这些信息还不够。

我刚刚读过这篇文章。

现在我有以下错误:

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

5 回答 5

14

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

这里:

class Math_model extends CI_Model {
   // your model
}

这里:

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

使用时:

$this->math_model->add();

并且:在您的文件系统中。所以重命名math.phpmath_model.php它会起作用。

于 2012-06-30T19:07:59.720 回答
3

文件名应该是 math_model.php,你应该这样称呼它:

echo $this->math_model->add();
于 2012-06-30T19:08:41.553 回答
1

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

class Math_model extends CI_Model {
   // your code
}

并且文件名应该是 Math_model.php

于 2019-05-27T12:19:16.027 回答
0

这个问题已经得到了真正的回答,问题是这样的:

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

..它是声明类后的开闭括号..它应该是:

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

非常感谢那些回复的人

于 2012-06-30T19:19:46.767 回答
0

好吧,应该始终注意,函数名称不应与控制器或模型名称重复,如下所示;

<?php
  class Abc extends CI_Controller{

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

}

这可能对刚接触 CI 的开发人员有所帮助,

于 2018-02-19T06:23:05.367 回答