【问题标题】:Fix Error Codeigniter : Call to a member function pilihkat() on a non-object修复错误 Codeigniter:调用非对象上的成员函数 pilihkat()
【发布时间】:2017-07-03 16:35:25
【问题描述】:

错误:

遇到了 PHP 错误

严重性:通知

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

文件名:控制器/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_categori 中选择下拉菜单)

    <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>

如何解决这个错误?

【问题讨论】:

  • 模型未正确加载
  • 但是,如何解决这个错误?
  • 试试我的更新答案

标签: php mysql codeigniter


【解决方案1】:

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

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

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

2.删除result() 因为你已经在模型中完成了。

public function index()
{

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

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

【讨论】:

  • 遇到 PHP 错误严重性:解析错误消息:语法错误,意外的“公共”(T_PUBLIC)文件名:控制器/Input_App.php 行号:22
  • 在您的模型中查看Input_app
  • 尝试编辑答案。为什么控制器中有这两行$this-&gt;db-&gt;from('referensi_kategori'); $query = $this-&gt;db-&gt;get();
【解决方案2】:

像这样加载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 

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

 $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();
        }

【讨论】:

  • 给出错误消息:类 Input_app 已经存在并且不扩展 CI_Model,对不起新手..
  • 。您必须只加载一次模块。仅在构造函数中使用这一行 $this->load->model(array('Input_model','input_app'));没有开始两行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-23
  • 2014-10-17
  • 2015-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多