2015-04-18 71 views
3

我正在創建註冊。每當我嘗試向數據庫插入數據時,都會引發此錯誤。CodeIgniter -Error調用非對象上的成員函數模型()

A PHP Error was encountered Severity: Notice Message: Undefined property: insert_ctrl::$insert_model Filename: controllers/insert_ctrl.php Line Number: 38 Fatal error: Call to a member function form_insert() on a non-object in C:\xampp\htdocs\NewProject\application\controllers\insert_ctrl.php on line 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); 
    } 
} 
?> 
+0

你的代碼看起來很好,只需將你的構造函數代碼改爲 $ this-> load-> model('insert_model'); –

+0

我做到了。但它仍然給出了一個錯誤 – Akisha

+0

這甚至沒有進入insert_model.php請幫助meee – Akisha

回答

2

我控制器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

你叫錯型號功能:

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'); 

    } 
+0

對不起我的壞。我只是做錯了。我改變了這個,但仍然給我同樣的錯誤。 – Akisha

+0

請提交您的型號代碼並更改您的型號名稱 – Saty

+0

我剛剛將我的型號代碼添加到我的問題 – Akisha

0

改變這一行

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

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

config\autoload.php

-1

加入這一行:$this->load->model('modelName');

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

} 
相關問題