在非对象上调用成员函数add()

时间:2012-03-04 19:11:48

标签: php codeigniter

我在运行这个简单的插入操作时遇到错误请看看

  

ERROR:
  遇到了PHP错误   严重性:通知
  消息:未定义属性:欢迎:: $ mdata
  文件名:controllers / welcome.php
  行号:29

     

致命错误:在第29行的C:\ wamp \ www \ codi \ application \ controllers \ welcome.php中的非对象上调用成员函数add()

我使用codeigniter

创建了基于MVC的代码

我的模型名称为mdata.php 为:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Mdata extends CI_Model {
function Mdata(){
parent::__construct();
}
function add($id, $name) {
        $data = array(
            'userid' => $id,
            'username' => $name
        );

        $this->db->insert('users', $data);
    }
}
?>

我的控制器名为welcome.php,为

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends CI_Controller 
{

public function index()

{
        if($this->input->post('submit'))
        {
            $id = $this->input->post('id');
            $name = $this->input->post('name');
            $this->mdata->add($id,$name);
            }

$this->load->model('mdata','',TRUE);

 $this->load->view('data');

}

}

=============================================== ============================== 我的视图文件是data.php为

<body>
<?php $this->load->helper('form'); ?>

<?php echo form_open('welcome'); ?>

    <p>
        <?php echo form_input('id'); ?>
    </p>

    <p>
        <?php echo form_input('name'); ?>
    </p>

    <p>
        <?php echo form_submit('submit', 'Submit'); ?>
    </p>

<?php echo form_close(); ?>
</body>

对于我所犯的这个简单错误,有什么帮助吗?

1 个答案:

答案 0 :(得分:3)

在调用$this->mdata

之前,您需要加载add() 引用的模型
if($this->input->post('submit'))
{
  // load the model first!
  $this->load->model('mdata');

  $id = $this->input->post('id');
  $name = $this->input->post('name');

  $this->mdata->add($id,$name);
}