修复错误Codeigniter:在非对象上调用成员函数pilihkat()

时间:2017-02-15 06:34:58

标签: php mysql codeigniter

错误:

遇到PHP错误

严重性:注意

消息:未定义属性:CI_DB_mysqli_result :: $ Input_model

文件名:controllers / Input_App.php

行号:18

回溯:

文件:C:\ xampp \ htdocs \ admin_app \ application \ controllers \ Input_App.php 行:18 功能:_error_handler

文件:C:\ xampp \ htdocs \ admin_app \ index.php 行:315 功能:require_once

致命错误:在第18行的C:\ xampp \ htdocs \ admin_app \ application \ controllers \ Input_App.php中的非对象上调用成员函数pilihkat()

我的控制器

    class Input_App extends CI_Controller {

public function __construct()
{
    parent::__construct();
    $this->load->helper('url');                    
    $this->load->model('Input_model','input_app'); 
}

public function index()
{
    $this->db->from('referensi_kategori');
    $query = $this->db->get();

    $load['pilihkategori'] = $query->Input_model->pilihkat()->result();

    $this->load->view('input_view',$load);
}

模特(pilihkat())

        public function pilihkat(){
    $this->db->select('*');    
    $this->db->join('referensi_kategori','referensi_kategori.id_kategori = data_aplikasi.id_kategori','left');
    $query = $this->db->get();

    return $query->result();
}

查看(从data_kategori选择下拉列表)

    <tr>
                                        <td>Kategori</td>
                                        <td><select name="data_kategori" class="form-control"required id="data_kategori" style="width:85%;">
                                        <option value='0'>-- pilih kategori --</option>
                                            <?php foreach ($pilihkategori as $kat) {
                                                echo "<option value=".$kat->id_kategori.">".$kat->data_kategori."</option>";
                                            }?>
                                        </select></td>
                                    </tr>

如何解决此错误?

2 个答案:

答案 0 :(得分:0)

在你的控制器中需要改变两件事。

1.加载多个这样的模型。

$this->load->model(array('Input_model','input_app')); 

2.Remove result()因为你已经在模特中完成了它。

public function index()
{

    $load['pilihkategori'] = $query->Input_model->pilihkat();

    $this->load->view('input_view',$load);
}

答案 1 :(得分:0)

像这样加载model

$this->load->model('Input_model','input_model');  //here input_model is alias name
$this->load->model('Input_app','input_app');  //here input_app is alias name

(或)

$this->load->model(array('Input_model','input_app')); // pass as array mutiple modal .in below i'm using this one 

在调用模型时删除控制器中的result()因为在模型中你返回的结果()所以在控制器中不需要再次调用它。

 $load['pilihkategori'] = Input_model->pilihkat();

控制器:

    public function index()
    {

        $load['pilihkategori'] = Input_model->pilihkat();

        $this->load->view('input_view',$load);
    }

型号:

  public function pilihkat()
      {
            $this->db->select('*');    
            $this->db->from('referensi_kategori');
            $this->db->join('referensi_kategori','referensi_kategori.id_kategori = data_aplikasi.id_kategori','left');
            $query = $this->db->get();

            return $query->result();
        }