用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2436|回复: 2
收起左侧

[已解决] 关于控制器和model中的方法调用的问题

[复制链接]
发表于 2010-6-30 09:28:25 | 显示全部楼层 |阅读模式
使用CI做了几个小的项目,对它了解的还不太多,最近做的一个项目中,在model中写了很多名称类似的方法,想要在控制器中循环调用,只更换一下model的方法名。。。可是遇到问题了。。。
例如:testModel中有get_1(),get_2(),get_3()......get_n()这样名称类似的方法,想要在控制器中使用循环调用,就像:

for($i=1;$i<n;$i++){
    $this->testModel->get_$i();
}

这样,但是实现不了,尝试了"$this->testModel->get_".$i."()";也不行。。。还有在某控制器中调用该控制器的一个方法,是不可以的吗?例如:
testCon中有test_1(),test_2();两个方法,我像这样调用:

test_1(){

    $this->test_2();

}
被提示错误了。。。请哪位高人给点儿意见和建议。。。谢谢。。。
发表于 2010-6-30 09:45:40 | 显示全部楼层
首先,在控制器中循环调用model中的方法是可以的,只是你的写法不对,应该是如下的写法:
PHP复制代码
 
for($i=1;$i<n;$i++){
    $method = "get_".$i;
    $this->testModel->$method();
}
 
复制代码

其次:在同一控制器中调用其他方法是可以的,提示什么错误,请贴图
 楼主| 发表于 2010-6-30 12:41:18 | 显示全部楼层
谢谢2L的回答,根据楼上的方法,确实可用。
在同一控制器中调用其他方法,是可用,我又从新测试的,开始是在构造函数中调用了其他方法,但是不可行。。。这次只是做了一个简单的输出操作,证实是没有问题的。。。我再多测试一下吧。。。谢谢关注的兄弟们。。。感谢2L的帮助。。。

本版积分规则