acergelff 发表于 2009-6-5 18:40:45

insert数据库失败,这是为什么呢?(已修改,但仍有错误)

本帖最后由 acergelff 于 2009-6-8 17:30 编辑

今天刚刚接触到CI
纯纯粹粹的菜鸟啊
自己照着教程做了个写入数据库的函数,然后在系统自带的welcome.php控制器中调用

然后就错了,提示
A PHP Error was encounteredSeverity: Notice
Message:Undefined property: Welcome::$Payment
Filename: controllers/welcome.php
Line Number: 24


Fatal error:Call to a member function add_pay_log() on a non-object in D:\AppServ\www\payment\system\application\controllers\welcome.php on line 24


迷惑了,这究竟是为什么呢?以前做的都是流程式的开发,对MVC架构很是不理解.....


这应该如何解决呢?错在哪儿了?:dizzy:

acergelff 发表于 2009-6-5 18:42:43

application\models\payment.php

本帖最后由 acergelff 于 2009-6-8 17:30 编辑

class Payment extends Model{

    function Payment(){
      parent::Model();
    }

    function add_pay_log(){
      $now = date("Y-m-d H:i:s");
      $topuplog= array(
            'user_name'      => $this->input->xss_clean($this->input->post('user_name')),
            'topup_time'   =>$now,
            'price'               =>$this->input->xss_clean($this->input->post('price')),
            'status'            =>'1'
      );

      $this->db->insert('pay_topup_log', $topuplog);
    }
}


welcome.php

class Welcome extends Controller {

    function Welcome()
    {
      parent::Controller();   
    }
   
    function index()
    {
          $this->load->helper('form');
          $data['title'] = "用户中心";
          $data['headline'] = "欢迎您的光临!";
          $data['include'] = 'home';
          $this->load->vars($data);
          $this->load->view('template');
    }

    function Payment(){
      $this->output->enable_profiler(TRUE);
      $this->load->helper('url');
      $this->load->model('payment',' ',TRUE);
      $this->;Payment->add_pay_log();
      redirect('welcome/thankyou','refresh');
    }

}

提交的表单如下
echo form_open('welcome/Payment');
echo form_label('用户名','name');
$ndata = array('name' => 'user_name', 'id' => 'id', 'size' => '25');
echo form_input($ndata);

echo form_label('金额','email');
$edata = array('name' => 'price', 'id' => 'email', 'size' => '25');
echo form_input($edata);

echo form_submit('submit','充值');
echo form_close();

Hex 发表于 2009-6-5 23:17:14

从错误上来说是模型没有装载进来。
这个错了吧?
    function MContacts(){
      parent::Model();
    }

应该是
    function Payment(){
      parent::Model();
    }

acergelff 发表于 2009-6-7 12:19:25

改了,但还是错误,估计不是这个原因,
有人说是没有连接数据库
我在构造函数中添加了
$this->load->database();
还是没有用

zhoulei 发表于 2009-6-11 13:21:48

我觉得是$this->load->model('payment',' ',TRUE);这个地方有问题,你不设置别名看看.
就用$this->load->model('payment'),然后在构造中加载数据库连接.
页: [1]
查看完整版本: insert数据库失败,这是为什么呢?(已修改,但仍有错误)