可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
When I want to access a function of a user defined model in CodeIgniter inside a custom user defined library it throws
Call to a member function Set_where() on a non-object
Although I load the model by using this inside that library
$CI =& get_instance(); $CI->load->model('home_model');
And I'm using this code to access the function inside home_model
class
$CI->home_model->Set_where("film_feature='Y'");
So now it throws the above error.
So could someone please help me solve this error?
回答1:
You could try to instantiate your model object like:
include_once('path/modelname.php'); $home_model = new Home_model(); $home_model->set_where(....);
make sure your model extends de default CI model class.
You could also use $CI->load->model(modelname); instead of include... It's easier to deal with path problems, however it would be a little less efficient because load->model will instantiate an object.
回答2:
Now i fix the issue just adding $CI =& get_instance(); into that function where i want to fetch previously i declare that $CI =& get_instance(); in another function of that class for which it was not instantiated.
My working code is now..
$CI =& get_instance();
$CI->load->model('home_model');
$CI->home_model->Set_where("film_feature='Y'");