【问题标题】:Codeigniter undefined property on controller控制器上的 Codeigniter 未定义属性
【发布时间】:2012-10-14 03:56:48
【问题描述】:

我有控制器在表上显示数据库记录

function gkategorimaterial()
{
    $this->load->model('m_kategorimaterial');
    $data['kirim'] = $this->m_kategorimaterial->read(); //error pointing on this line
    $data['title'] = 'QB Ambil Kategori Material / Jasa';

    $this->load->view('head',$data);
    $this->load->view('g/gkategorimaterial',$data);
}

gkategorimaterial() 改编自

function vkategorimaterial()
{
    $this->load->model('m_kategorimaterial');

    $data['kirim'] = $this->m_kategorimaterial->read();
    $data['title'] = 'QB Kategori Material';

    $this->load->view('head',$data);
    $this->load->view('v/vkategorimaterial',$data);
}

其中有一些功能,显示表格,vkategorimaterial()成功检索记录。

这里是`m_kategorimaterial的模型

function read()
{
    $query = $this->db->order_by('Kode_Kategori_Material_Jasa','DESC');
    $query = $this->db->get('ms_kategori_material');

    if($query->num_rows()>0)
    {     
        return $query->result();
    }
    else
    {
        return null;
    }
}

遇到了 PHP 错误

严重性:通知

消息:未定义属性:C_materialjasa::$m_kategorimaterial

文件名:controllers/c_materialjasa.php

行号:140

我相信它与模型无关,但我不知道错误是什么,因为我只是复制粘贴第一个控制器 vkategorimaterial() 控制器,然后重命名变量

【问题讨论】:

    标签: php codeigniter variables controller


    【解决方案1】:

    数据库是否加载到 m_kategorimaterial 上?

    $this->load->database(); 
    

    或在 ./application/config/autoload.php 中设置

    $autoload['libraries'] = array('database');  
    

    或者尝试在控制器中添加父级:

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

    加载模型:

    控制器:

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

    模型('models/Model_name.php')

    class Model_name extends CI_Model {
    
        function __construct()
        {
        parent::__construct();
        }
    
            function read() { return; }
    }
    

    确保是模型文件 CHMOD-ed 到 0755!

    【讨论】:

    • 是的,我之前已经成功加载过数据库记录。我不知道为什么我不能加载这个:(
    • 尝试在控制器中添加父级,并尝试在模型上添加自动连接:您可以通过第三个参数和连接设置传递 TRUE(布尔值)来告诉模型加载函数自动连接,将使用数据库配置文件中定义的: $this->load->model('Model_name', '', TRUE);
    • 好的,我会的,顺便说一句,控制器有什么问题吗?
    • 仅供参考,我已经评论了$this->load->view() 行,试试这个print_r($this->m_kategorimaterial->read()); 它显示相同的错误,它说Message: Undefined property: C_materialjasa::$m_kategorimaterial
    • 这听起来不能叫模型。你确定是控制器加载了模型吗?
    【解决方案2】:

    我的错!我在模型文件上写了 class classname extends CI_Controller

    【讨论】:

    • 我建议您在运行之前进行基本调试。在上一个问题中,我也看到您的问题包含错误,只能归因于缺乏注意力和注意力。无论如何,您可以在一个月内提出有限数量的问题。不要用完了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多