在thinkphp里面我们如何跨模块调用(这里使用Action举例:如果项目需要的话,还有可能跨分组调用,所以有时候需要调用其他组的Action)。
我在开发的过程中经常会在当前Action中调用其他Action中的方法,这就涉及到跨Action的调用,我们还可以了解到A和R两个快捷键方法的使用。
举例A和R的用法:

 
  
  1. $User = A("User"); // 实例化UserAction控制器对象 
  2. $User->importUser(); // 调用User模块的importUser操作方法 
  3. 这里的A("User") 是一个快捷方法,和下面的代码等效: 
  4. import("@.Action.UserAction"); 
  5. $User = new UserAction();  

事实上,在这个例子里面还有比A方法更简单的调用方法,例如:

 
  
  1. R("User","importUser"); // 远程调用UserAction控制器的importUser操作方法 

上面只是在当前项目中调用,如果你有需要在多个项目之间调用方法,一样可以完成:

 
  
  1. $User = A("User","App2"); // 实例化App2项目的UserAction控制器对象 
  2. $User->importUser();  

// 远程调用App2项目的UserAction控制器的importUser操作方法

 
  
  1. R("User","importUser","App2"); 

这里介绍我项目中用到的实例:
我的项目下面分了两个组:Admin和Home,相信大家看名字就能明白这两个组的是做什么的~
实例化模块的时候(当前位置是在Home中IndexAction类的index方法中实例化)

 
  
  1. import("@.Action.Admin.UserAction");   //Admin就是组的名字 
  2. $user = new UserAction(); 
  3. $user->add(); 

我们需要注意的是:调用的方法必须是 public型的, 本文中的Action为缩写,具体写法:Action(或者分组Action)