【问题标题】:Error Fatal error: Call to a member function insert() on a non-object错误致命错误:在非对象上调用成员函数 insert()
【发布时间】:2015-04-29 12:35:54
【问题描述】:

我在插入数据库后使用回调,将值传递给另一个表,我认为我使用的方法很好。但是当它插入到数据库中的另一个表时,它给了我这个错误,可能在我的模型中,或者控制器中的某些东西在这个错误中我有点无能为力,有人可以帮助我。 在有人说要放 $this->load->database();它已经在我的配置文件中自动加载:)

致命错误:在非对象上调用成员函数 insert()

遇到了 PHP 错误

严重性:通知

消息:未定义的属性:Finances::$inventory_model

文件名:controllers/finances.php

行号:125

控制器:

public function inventory_management($post_array,$primary_key)
    {  
        $this->load->model('inventory_model');

        if($post_array['id_expense']!=null){
            $type = 'add';
            $id_exp_detail = $primary_key;

            $result = $this->inventory_model->insert([
                'id_exp_detail' => $id_exp_detail,
                'name' => $post_array['brand'],
                'quantity' => $post_array['item_quantity'],
                'lote' => $post_array['package_code'];
                'type' => $type,
                'date' => date(),
                'id_user' => $this->session->userdata('id_user'),
                'id_entity' => $this->session->userdata('id_entity')
            ]);
        }else if ($post_array['name']!=null){
            $type = 'sub';
            $id_treatment = $primary_key;

            $result = $this->inventory_model->insert([
                'id_treatment' => $id_treatment,
                'name' => $post_array['name'],
                'quantity' => $post_data['recomended_dose'],
                'lote' => $post_array['id_package'],
                'type' => $type,
                'date' => date(),
                'id_user' => $this->session->userdata('id_user'),
                'id_entity' => $this->session->userdata('id_entity')
            ]);
        }else{
            $type = 'sub';
            $id_fertilization = $primary_key;

            $result = $this->inventory_model->insert([
                'id_fertilization' => $id_fertilization,
                'name' => $post_data['name'],
                'quantity' => $post_data['quantity'],
                'lote' => $post_data['id_package'],
                'type' => $type,
                'date' => date(),
                'id_user' => $this->session->userdata('id_user'),
                'id_entity' => $this->session->userdata('id_entity')
            ]);
        }

        if($result){
            echo "validation Complete";
        }

    }

型号

class CRUD_model extends CI_Model
{

    protected $_table = null;
    protected $_primary_key = null;

    // ------------------------------------------------------------------------

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


    public function insert($data)
    {

        $this->db->insert($this->_table, $data);
        // return $this->db->insert_id();
    }

型号:

class inventory_model extends CRUD_model
{
    protected $_table = 'inventory_management';
    protected $_primary_key = 'id';

    // ------------------------------------------------------------------------

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

    // ------------------------------------------------------------------------

}

【问题讨论】:

    标签: php mysql codeigniter codeigniter-2 crud


    【解决方案1】:

    这是你调用错误模型文件的错误

    $this->load->model('inventory_model');
    

    应该是

    $this->load->model('crud_model');
    

    你使用错误的方式在函数中传递数组

    $param = array('id_exp_detail' => $id_exp_detail, 'name' => $post_array['brand'], 'quantity' => $post_array['item_quantity'], 'lote' => $post_array['package_code'], 'type' => $type, 'date' => date(), 'id_user' => $this->session->userdata('id_user'), 'id_entity' => $this->session->userdata('id_entity')); 
    
    $result = $this->inventory_model->insert($param);
    

    【讨论】:

    • 我应该把库存模型贴出来,让大家理解,我的错。
    • 这是第 125 行$result = $this->inventory_model->insert([
    • @RicardoOrigin 您使用错误的方式将数组传递给模型。我编辑了我的代码,请检查
    • 如果您使用CRUD_model 而不是inventory_model,您会得到同样的错误吗?我知道在CRUD_model 中没有定义表和主键,这会导致数据库错误。
    • 当我再次进入我的桌面时,我会尽快检查。感谢您的时间和帮助
    猜你喜欢
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    • 2013-11-25
    • 2012-05-30
    • 2016-08-30
    • 2015-02-06
    • 2012-05-14
    • 2013-11-19
    相关资源
    最近更新 更多