2014-02-10 55 views
1

我有一個名爲register_model.php的模型,我在我的控制器(register_controller.php)中加載了一個函數。模型文件被放入模型文件夾本身。不過,我得到這個錯誤。無法在Codeigniter中加載模型

一個錯誤時遇到

無法找到您所指定的型號:register_model

register_controller.php

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Register_controller extends CI_Controller 
{ 
    function __construct() 
    { 
     parent::__construct(); 

    } 

// function index() 
// { 
//   
// } 

    public function register() { 

     if ($this->session->userdata('logged_in')) 
     { 
      //user is already logged in 
      redirect('index.php'); 
     } 
     else { 
      //init 
      //$data['country_list']=$this->config->item('um_country_list'); 
      $data['username'] = ''; 
      $data['firstname'] = ''; 
      $data['lastname'] = ''; 
      $data['email'] = ''; 

      // $data['password'] = ''; 
      //$data['userlevel'] = ''; 

      //load rules 
      $rules = $this->config->item('um_register_rules'); 
      //default msg 
      $data['msg'] = $this->lang->line('um_form_msg'); 
      $this->load->model('register_model'); 
      if (isset($_POST['submit'])) { 
       //the user has submitted the form 
       //get the user input 

       $data['username'] = $this->input->post('username'); 
       $data['firstname'] = $this->input->post('firstname'); 
       $data['lastname'] = $this->input->post('lastname'); 
       $data['email'] = $this->input->post('email'); 
       $data['password'] = $this->input->post('password'); 
       //$data['userlevel'] = $this->input->post('userlevel'); 

       $this->form_validation->set_rules($rules); //check with the rules 
       if ($this->form_validation->run() === FALSE) { 
        //validation failed 
        $data['msg'] = $this->lang->line('um_form_error'); 
        $this->load->view('user_register_form', $data); 
       } else { 
        //validation passed 
        $dbdata = array(


         'username' => $this->input->post('username'), 
         'firstname' => $this->input->post('firstname'), 
         'lastname' => $this->input->post('lastname'), 
         'email' => $this->input->post('email'), 
         'password' => $this->input->post('password'), 
         //'userlevel' => $this->input->post('userlevel') 

        ); 

        $this->register_model->register_user($dbdata); 

        $data['msg']=$this->lang->line('um_form_activate'); 
        //render the view 
        $this->load->view('um_msg', $data); 
       } 
      } else { 
       //render the view 
       $this->load->view('user_register_form', $data); 
      } 
     } 
    } 
} 

?> 

register_model.php

<?php 

if (!defined('BASEPATH')) 
    exit('No direct script access allowed'); 

    class Register_model extends CI_Model { 

     function __construct() { 
      parent::__construct(); 
     } 

     public function register_user($dbdata) { 
      $this->db->insert('users', $dbdata); 
     } 

    } 

    ?> 
+0

添加您的控制器和模型代碼 –

+0

新增控制器和模型代碼。 – upjc

+0

一切似乎都是正確的......也許你的文件名有一個字母大小寫問題? – Kalzem

回答

0

也許你應該包括您的控制器內的模型,嘗試包含後parent::__construct

這看起來應該像這樣:

類註冊擴展是CI_Controller {

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

,或者如果你使用這種模式在大多數控制器,你可以使用自動加載包含它,去/配置/自動加載.php搜索$ autoload ['model']並在合適的陣列中添加你的模型

0

首先在你的控制器中加載你的模型..

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

這會爲你工作...

+0

它不工作..它僅存在於模型文件夾中..類名是Register_model,文件是register_model.php ..那麼爲什麼會出現這個問題? – upjc

+0

我做了一個不同的模型,並使用它,它的工作。不管怎麼說,還是要謝謝你。 – upjc