设为首页
收藏本站
Archiver
用户
登录
入住
用户名
Email
自动登录
找回密码
密码
登录
入住 CI 中国社区
首页
返回 CodeIgniter 中国首页
论坛
BBS
导读
Guide
个人主页
Space
中文手册
搜索
CodeIgniter 搜索引擎
视频教程
案例
任务
搜索
搜索
本版
帖子
用户
设为首页
收藏本站
Archiver
开启辅助访问
切换到宽版
日志
相册
分享
记录
CodeIgniter4
CodeIgniter3
CodeIgniter2
帖子
好友
道具
勋章
收藏
任务
记录
留言板
设置
我的收藏
退出
腾讯QQ
微信登录
CodeIgniter 中国开发者社区
»
论坛
›
CodeIgniter 开发
›
CodeIgniter 问答求助
›
新手求助,如何动态调用Model?
返回列表
查看:
3054
|
回复:
9
[讨论/交流]
新手求助,如何动态调用Model?
[复制链接]
yayongm
yayongm
当前离线
积分
8
IP卡
狗仔卡
发表于 2011-2-21 20:06:19
|
显示全部楼层
|
阅读模式
本帖最后由 yayongm 于 2011-2-21 20:08 编辑
折腾了一下午,没有搞定,请高手指点:
正常情况下,我们
$this->load->model('ModelA');
然后
$this->modela->MethodA();
可是我想动态调用,类似下面:
$this->load->model('ModelA');
装载后
$this->getModel('modela')->MethodA();
可是折腾一个下午无法实现,请高手帮助,谢谢.
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
jeongee
jeongee
当前离线
积分
5618
IP卡
狗仔卡
发表于 2011-2-21 20:30:13
|
显示全部楼层
本帖最后由 jeongee 于 2011-2-21 20:31 编辑
你非要这样的话,你就去扩展下CI_Controller吧
如:
PHP
复制代码
MY_Controller
extends
CI_Controller
{
function
__construct
(
)
{
parent
::
__construct
(
)
;
}
function
getModel
(
$model
)
{
$this
->
load
->
model
(
$model
)
;
return
&
$this
->
$model
;
}
}
复制代码
回复
支持
反对
使用道具
举报
显身卡
yayongm
yayongm
当前离线
积分
8
IP卡
狗仔卡
楼主
|
发表于 2011-2-22 08:46:36
|
显示全部楼层
本帖最后由 yayongm 于 2011-2-22 08:48 编辑
谢谢jeongee,貌似:
return &$this->$model;
这句话有错误,要声明$this->$model为类成员吗?还有
$this->load->model($model);
的返回值为void.
谢谢啦...
新手,首次接触CodeIgniter,请多多包涵....
回复
支持
反对
使用道具
举报
显身卡
yayongm
yayongm
当前离线
积分
8
IP卡
狗仔卡
楼主
|
发表于 2011-2-22 09:51:45
|
显示全部楼层
人工置顶吧.
其实这个问题可以简化为:根据类实例名称来调用类方法.
回复
支持
反对
使用道具
举报
显身卡
maboroshi
maboroshi
当前离线
积分
2
IP卡
狗仔卡
发表于 2011-2-22 14:14:57
|
显示全部楼层
恩,昨天想用CI写一个动态扩展的小工具,也有这个需求,试了很多办法都失败,然后就Google到这里来了...
如果是java的话很容易实现,用反射就行了,php的反射也能这么用嘛?
回复
支持
反对
使用道具
举报
显身卡
jeongee
jeongee
当前离线
积分
5618
IP卡
狗仔卡
发表于 2011-2-22 14:37:02
|
显示全部楼层
回复
5#
maboroshi
php有个特性叫变量的变量,然后这个就很容易实现了
回复
支持
反对
使用道具
举报
显身卡
maboroshi
maboroshi
当前离线
积分
2
IP卡
狗仔卡
发表于 2011-2-22 14:48:17
|
显示全部楼层
啊,原来直接用名字就可以了orz
$fred = 'Test_model';
$this->$fred->info();
只试过2.0,之前的版本应该也可以...
回复
支持
反对
使用道具
举报
显身卡
jeongee
jeongee
当前离线
积分
5618
IP卡
狗仔卡
发表于 2011-2-22 14:52:02
|
显示全部楼层
回复
7#
maboroshi
呵呵,是的,跟CI版本没关系,这个是PHP的特性
回复
支持
反对
使用道具
举报
显身卡
skeay
skeay
当前离线
积分
159
IP卡
狗仔卡
发表于 2011-2-22 14:59:36
|
显示全部楼层
$name='jhon';
$$name='Rose';
等价于$jhon='Rose';
回复
支持
反对
使用道具
举报
显身卡
yayongm
yayongm
当前离线
积分
8
IP卡
狗仔卡
楼主
|
发表于 2011-2-23 09:57:40
|
显示全部楼层
感谢楼上各位高手解答,问题已解决,谢谢大家!
CI终于入门啦,哈哈哈.....
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
入住 CI 中国社区
本版积分规则
发表回复
回帖后跳转到最后一页