在thinkphp里面咱们如何跨模块调用(这里使用Action举例:若是项目须要的话,还有可能跨分组调用,因此有时候须要调用其余组的Action)。
我在开发的过程当中常常会在当前Action中调用其余Action中的方法,这就涉及到跨Action的调用,咱们还能够了解到A和R两个快捷键方法的使用。
举例A和R的用法: php
- $User = A("User"); // 实例化UserAction控制器对象
- $User->importUser(); // 调用User模块的importUser操做方法
- 这里的A("User") 是一个快捷方法,和下面的代码等效:
- import("@.Action.UserAction");
- $User = new UserAction();
事实上,在这个例子里面还有比A方法更简单的调用方法,例如:thinkphp
- R("User","importUser"); // 远程调用UserAction控制器的importUser操做方法
上面只是在当前项目中调用,若是你有须要在多个项目之间调用方法,同样能够完成:ide
- $User = A("User","App2"); // 实例化App2项目的UserAction控制器对象
- $User->importUser();
// 远程调用App2项目的UserAction控制器的importUser操做方法spa
- R("User","importUser","App2");
这里介绍我项目中用到的实例:
个人项目下面分了两个组:Admin和Home,相信你们看名字就能明白这两个组的是作什么的~
实例化模块的时候(当前位置是在Home中IndexAction类的index方法中实例化)xml
- import("@.Action.Admin.UserAction"); //Admin就是组的名字
- $user = new UserAction();
- $user->add();
咱们须要注意的是:调用的方法必须是 public型的, 本文中的Action为缩写,具体写法:Action(或者分组Action)对象