在做php开发的时候,有时候我在一个模块里面写了一个方法,但是我要在另外的一个模块内调用,此时就需要跨模块调用了,比如现在我有一个usersAction这个模块 内有一个test()方法 我在company内要调用 此时如何进行呢?有2种办法
代码如下 | 复制代码 |
一:$User = A("User"); // 实例化UserAction控制器对象 $User->importUser(); // 调用User模块的importUser操作方法 |
这里的A("User") 是一个快捷方法,和下面的代码等效:
代码如下 | 复制代码 |
import("@.Action.UserAction"); $User = new UserAction(); |
事实上,在这个例子里面还有比A方法更简单的调用方法,例如:
代码如下 | 复制代码 |
R("User","importUser"); |
// 远程调用UserAction控制器的importUser操作方法
上面只是在当前项目中调用,如果你有需要在多个项目之间调用方法,一样可以完成:
代码如下 | 复制代码 |
$User = A("User","App2"); // 实例化App2项目的UserAction控制器对象 $User->importUser(); |
// 远程调用App2项目的UserAction控制器的importUser操作方法
代码如下 | 复制代码 |
R("User","importUser","App2"); |
我的一个例子:
一个项目下面分了两个组:admin和home
home默认是组:
实例化模块的时候(当前位置是在admin中IndexAction类的index方法中实例化)
代码如下 | 复制代码 |
import("@.Action.Home.UserAction"); $User=new UserAction(); $User->show(); $User->add(); |
注:调用的方法必须是 public型的
另外还有一种简单的办法就是 把test方法写到common.php内即可 因为这个文件在加载的时候已经默认的调用了
找不到方法的解决
不知道这个算不算BUG,如果被调用的Action和当前Action同名,ThinkPHP就会报找不到方法(也许是在调用的这个Action里找了).
比如:Admin/Config里调Common/Config里的方法时,就会出现这个问题,解决方法:
没办法,改个名字吧。
荒野乱斗国际版 (BrawlStars)最新版本v56.274
下载一波超人内置修改器菜单版 安卓版v1.0.2
下载敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载继承了一座戏园子无限声望铜钱版 内置菜单最新版v1.7
继承了一座戏园子折相思版是游戏的破解版本,在该版本中为玩家提
山河半世橙光清软金手指版 无限鲜花v3.24
山河半世是一款超级好玩的橙光恋爱游戏,在游戏中玩家们需要扮演
蓬莱手游折相思版 安卓版v1.0.0
蓬莱免广告版是游戏的修改版本,在该版本中为玩家去除了广告,玩
当红影后橙光游戏破解版2025 最新版v1.0
当红影后橙光破解版是一款超级好玩的娱乐圈题材的橙光游戏,在这
忽然成了万人迷清软完结版 无限鲜花版v12.15
忽然成了万人迷破解版是一款非常好玩的男性向橙光游戏,在有一天