Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

$this->load->model() not working in CodeIgniter

I'm using CodeIgniter 2.1.2 and here's my situation right now. I have a model named math.php in C:\wamp\www\cr8v\application\models. I am trying to load this in my controller from C:\wamp\www\cr8v\application\controllers\site.php yet I am getting this error:

Unable to locate the model you have specified: math_model

Here's the content of math.php:

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

And here's the content of my 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();
        }
    }  
?>

I followed this in a tutorial in YouTube. Yet, it doesn't give me my desired output. I've tried Googling about it and read other related questions with this, however those information are not enough.

I have read this just a while ago.

Now I have the following error:

( ! ) 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
like image 288
Charmie Avatar asked Dec 04 '22 03:12

Charmie


1 Answers

The name needs to be the same in all places:

Here:

class Math_model extends CI_Model {
   // your model
}

Here:

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

When using it:

$this->math_model->add();

And: in your file system. So rename math.php to math_model.php and it will work.

like image 106
Robert Avatar answered Jan 10 '23 03:01

Robert