在CodeIgniter中调用对象的方法

时间:2012-11-07 17:15:38

标签: codeigniter

为什么我不能直接在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;
}

那我该怎么做呢?我认为我尊重基本的对象逻辑,但我无法使其发挥作用。

1 个答案:

答案 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
}
相关问题