CodeIgniter: can't access $this within functio

2019-02-25 05:48发布

问题:

I'm using CodeIgniter and one of my views got pretty large so I moved some of the code in a function in the same file:

function html_stuff()
{
    $posts = $this->db->query('select * from posts');
}

When I run this code I get the following error:

Fatal error: Using $this when not in object context in /somepath/view.php

回答1:

You could either pass the function $this

function html_stuff($ci) {
    $ci->db->query('select * from posts');
}
html_stuff($this);

Or use get_instance()

function html_stuff() {
    $ci = &get_instance();
    $ci->db->query('select * from posts');
}

See: https://www.codeigniter.com/user_guide/general/creating_libraries.html