2014-02-10 28 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