为什么我不能直接在CodeIgniter中的对象上调用方法?
例如:
$campaign = $this->Campaign_model->get_campaign_from_id($campaign_id);
$campaign->load_settings(); // returns error: Call to undefined method stdClass::load_settings()
正确创建了Campaign对象,但即使它在类中,我也无法在其上调用方法。
这是我正在调用的Campaign_model方法:
function load_settings()
{
echo "test";
exit;
}
那我该怎么做呢?我认为我尊重基本的对象逻辑,但我无法使其发挥作用。
答案 0 :(得分:0)
CodeIgniter模型只是函数的集合,每个模型只有一个实例。你没有返回“模型对象”,这不是它的工作原理。
您从get_campaign_from_id
返回的“对象”只是一个普通的PHP对象,并且没有与您的模型有关。
您无法调用stdClass
个对象上的函数,但可以将其传递给可以编辑其属性的函数。
// in PHP5 objects are automatically passed by reference
function load_settings($obj){
$obj->test = '123'; // edit a property on the object
}