ThinkPHP开发指南-控制器之操作链和跨模块调用
来自站长百科
导航:返回上一页
操作链
ThinkPHP支持使用操作链的方式,例如,我们访问下面的URL:http://serverName/appName/User/action1:action2:action3/
那么会依次执行UserAction的action1 action2 action3方法,并且当前操作名称是最后一个操作。在进行默认模板输出的时候会用到。如果确实需要在不同的操作方法中都进行输出,请确保在Action的display方法中指定需要渲染的模板文件名。否则,只能输出最后的操作模板。使用了操作链后,前置和后置方法会失效。
跨模块调用
在开发过程中经常会在当前模块调用其他模块的方法,这个时候就涉及到跨模块调用,我们还可以了解到A和R两个快捷方法的使用。
$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");