致命错误:在非对象代码点火器上调用成员函数

时间:2011-08-13 21:52:28

标签: php mysql codeigniter

我按照了有关模型的文档,我不断收到此错误,我们将不胜感激。

遇到PHP错误

严重性:注意

消息:未定义属性:Manage :: $ File

文件名:files / manage.php

行号:14

致命错误:在第14行的/var/www/uisimulator/application/controllers/files/manage.php中的非对象上调用成员函数get_files()*

这是我的模特: - 位于:application / models / files / file.php

class File extends CI_Model {

    var $filename = '';

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

    // Return all config files
    function get_files() {
        $query = $this->db->get('config_files');
        return $query->result();
    }

    function insert_file() {
        $this->filename = $this->input->post('filename');
        $this->db->insert('config_files', $this);
    }

    function update_file() {
        $this->filename = $this->input->post('filename');
        $this->db->update('config_files', $this, array('id' => $this->input->post('id'));
    }
}

这是我的控制器:位置:application / controllers / files / manage.php

类Manage扩展CI_Controller {

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

    public function index() {
        $this->load->model('files/file', TRUE);

        $config_files['query'] = $this->File->get_files();

        // Load the head section
        $this->load->view('head');

        // Load the view, passing in the data
        $this->load->view('files/index', $configFiles);

        // Load Footer
        $this->load->view('footer');
    }
}

在我的视图中,我有一个简单的循环来显示结果:

  <?php foreach ($configFiles as $file) : ?>
        <li><?php echo $file['filename'];?></li>
   <?php endforeach;?>

3 个答案:

答案 0 :(得分:2)

尝试:

 $this->load->model('files/file','', TRUE);

编辑:

$data['configFiles'] = $this->File->get_files();
// Load the head section
$this->load->view('head');

// Load the view, passing in the data
$this->load->view('files/index', $data);

答案 1 :(得分:1)

此代码会产生一条记录,但只给我一个表中的字段。

function listar_dados_produto($id)
{
    $this->db->where('id',$id);     
    $query = $this->db->get('produtos');
    return $query->result();
}

注意:我正在使用activerecord。表produtos corectly返回他们的领域,但我需要一个领域 另一个名为Categias的表。

答案 2 :(得分:0)

您是否已将TRUE作为$this->load->model方法中的第二个参数传递?

我对CI的理解是第二个参数是用不同的名称来引用你的模型,而不是它的类。

看起来你将你的类命名为布尔值,这必然会导致某种错误。

尝试:

$this->load->model('files/file', NULL, TRUE);

//$data['configFiles'] = $this->File->get_files();
print_r($this->File->get_files());
exit;
// do you get any data?


// Load the head section
$this->load->view('head');

// Load the view, passing in the data
$this->load->view('files/index', $data);