2017-07-02 109 views
0

我有一个包含所有扩展名的数组,并且我想为该扩展加载相应的模型,然后调用install方法。它应该是这个样子:如何通过使用变量来调用CI模型函数

foreach ($extensions as $extension) { 
    $this->load->model('Model_'. $extension); 
    $this->model_$extension->install(); //how do I achieve this? 
} 

回答

1

尝试分配模型名称变量,然后使用该变量来加载模型

foreach ($extensions as $extension) { 
    $load_model = 'Model_'. $extension; 
    $this->load->model($load_model);   
    $this->$load_model->install(); 
} 
1
foreach ($extensions as $extension) { 
    $model = 'Model_'. $extension; // save in separate var 
    $this->load->model($model); 
    $this->$model->install(); 
} 

我都试过,但不能连接,并在同一时间分配,所以可以有不同的变量和呼叫。

+0

@ssd你有没有解决它? –

+0

只要注意,如果你在别处引用这些模型,你需要坚持上面定义的Case ...因为上面是Model_xxx,所以你需要使用$ this-> Model_xxx-> method();如果您使用model_构建模型字符串名称 - 您可以使用小写字母$ this-> model_xxx-> method(); – TimBrownlaw

+0

@TimBrownlaw谢谢你提到这个。我在我的代码中使用了小写字母,只是从问题中粘贴了代码。 –

相关问题