CodeIgniter -Error在非对象上调用成员函数model()

时间:2015-04-18 07:30:30

标签: php codeigniter

我正在创建一个注册。每当我尝试向db插入数据时,它都会抛出此错误。

  

遇到PHP错误严重性:通知消息:未定义   property:insert_ctrl :: $ insert_model文件名:   controllers / insert_ctrl.php行号:38        致命错误:在非对象中调用成员函数form_insert()   C:\ xampp \ htdocs \ NewProject \ application \ controllers \ insert_ctrl.php on   第38行

这是我的insert_ctrl.php

<?php

class insert_ctrl extends  CI_Controller{

    function _construct()
    {
        parent :: _construct();
        $this->insert_model->form_insert($data);

    }

    function index()
    {
        //Including validation library
        $this->load->library('form_validation');
        $this->form_validation->set_error_delimiters('<div class ="error">','</div>');

        //Validating name field
        $this->form_validation->set_rules('dname','Username','required|min_length[5]|max_length[15]');
        $this->form_validation->set_rules('demail','Email','required|valid_email');
        $this->form_validation->set_rules('dmobile','Mobile No.');
            $this->form_validation->set_rules('daddress','Adress','required|min_length[10]|max_length[50]');

            if($this->form_validation->run()==FALSE)
            {
                $this->load->view('insert_view');
            }
            else {
                //Setting values for db table
                $data=array(
                    'Student_Name'=>$this->input->post('dname'),
                    'Student_Email'=>$this->input->post('demail'),
                    'Student_Mobile'=>$this->input->post('dmoblie'),
                    'Student_Address'=>$this->input->post('daddress')

                );
                //Transfering data to model
                $this->insert_model->form_insert($data);
                //loading view
                $this->load->view('insert_view');
            }
        }
    }

//insert_model.php

<?php
class insert_model extends  CI_Model{
    function _construct()
    {
        parent :: _construct();


    }

    function form_insert($data)
    {
        $this->db->insert('student',$data);
    }
}
?>

4 个答案:

答案 0 :(得分:2)

你调用了错误的模型函数:

You call $this->load->model('Insert_model');

这意味着您的模型是Insert_model

而不是:

 $this->insert_model->form_insert($data);

您使用

$this->Insert_model->form_insert($data);

将构造函数代码更改为

function _construct()
    {
        parent :: _construct();
        $this->load->model('insert_model');

    }

答案 1 :(得分:2)

我的controller-insert_ctrl.php

class insert_ctrl extends  CI_Controller{

function __construct()
{
    parent :: __construct();
    $this->load->model('insert_model');

}

function index()
{

        $this->insert_model->form_insert();
        echo "Clear";


}

}

我的模型 - insert_model.php

class insert_model extends  CI_Model{
    function __construct()
    {
        parent :: __construct();


    }

    function form_insert()
    {
        echo "model loaded Successfully";
    }
}

此型号和控制器的名称与您的完全相同。检查模型的加载和调用方式。

您可以通过在php文件上添加以下代码行来克服内存限制错误。

  

的ini_set( “memory_limit的”, “512M”);

答案 2 :(得分:0)

更改此行

  

$ autoload ['libraries'] = array();

  

$ autoload ['libraries'] = array('database');

config\autoload.php

中的

答案 3 :(得分:-1)

添加以下行:$this->load->model('modelName');

function __construct()
{
    parent :: __construct();
    $this->load->model('modelName');

}