如何在yii的controller中调用外部action

2025-03-09 08:29:19
推荐回答(1个)
回答1:

下面我们要做的是,将actionHello形成一个单独的类,在TestController中调用它。
1. 建立wntrollers/test/目录
目录名定为test是yii推荐的写法,建议action所在的目录与对应的controller同名,当然不这样也没有关系。
2.在test目录中创建HelloAction.php文件。
文件内容如下:

[php] view plaincopy
class HelloAction extends CAction{
public function run($name='ball'){
echo "Hello $name";
}
}
注意:

1.此类一定要继承自CAction类
2.必须有run方法供外部调用
3.run方法的参数,即为url中的请求参数。当然也可以通过$_GET的方式在函数内部取得
r#action一节中的Action Parameter Binding

3.修改TestController.php

[php] view plaincopy
class TestController extends Controller {
public function actions(){
return array('hello'=>array(
'class'=>'application.controllers.test.HelloAction',
)
);
}
}