例如,在Index模块调用User模块的操作方法
<?php
class IndexAction extends Action {
public function index(){
$user= new UserAction();//实例化UserAction();
$this->display();
}
}
?>
由于系统会自动加载Action控制器,因此 咋们不必须要导入UserAction类就可以直接实例化。
并且为了方便跨模块调用,系统内置了A方法和R方法。
A方法表示实例化某个模块,例如,上面的方法可以改为:
<?php
class IndexAction extends Action {
public function index(){
$user=A(‘User’);//实例化UserAction();
$this->display();
}
}?>
事实上,A方法还支持跨分组或者跨项目调用,默认情况下是调用当前项目下边的模块。
跨项目调用的格式是:
A('[项目名://][分组名/]模块名')
A('User') 表示调用当前项目的User模块
A('Admin://User') 表示调用Admin项目的User模块
A('Admin/User') 表示调用Admin分组的User模块
A('Admin://Tool/User') 表示调用Admin项目Tool分组的User模块
R方法表示调用一个模块的某个操作方法,调用格式是:
R('[项目名://][分组名/]模块名/操作名',array('参数1','参数2'…))
R('User/info') 表示调用当前项目的User模块的info操作方法
R('Admin/User/info') 表示调用Admin分组的User模块的info操作方法
R('Admin://Tool/User/info') 表示调用Admin项目Tool分组的User模块的info操作方法R方法还支持对调用的操作方法必须要传入参数,例如User模块中咋们定义了一个info方法:Class UserAction extends Action{
Protected function info($id){
$User = M('User');
$User->find($id);
…..
}
}
接下来,咋们可以在其他模块中调用:
R('User/info',array(15))
表示调用当前项目的User模块的info操作方法,并且id参数传入15
热点文章
最新文章