转:http://www.architecy.com/archives/361
在yii2的演示包里siteController.php文件中就有一段:public function actions()
{
return [
'error' => [
'class' => 'yiiwebErrorAction',
],//返回错误
'captcha' => [
'class' => 'yiicaptchaCaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],//返回验证
];
}
在这段程序里,分别用到了error和captcha两个外部action,分别用来回显错误和校验图形验证码。
(我们可以在vendor/yiisoft/yii2里找到对应的程序文件。)
现在我们来看一下使用方法
在浏览器中我们输入http://localhost/index.php?r=site/captcha,则会显示出一个验证码;
在浏览器中我们输入http://localhost/index.php?r=site/error,则会显示出一个错误提示;
到这,相信大家应该对actions的使用方法有所了解了,actions就是一系列动作的聚合,以此来调用各个动作的使用。
现在我们来自己写一个独立动作
第一步:新建一个TestAction.php,自写义的外部action,可以放到任意位置,本例,我把它放到网站的frontend/actions里面。
TestAction.php的代码如下controller->render('test');
}
}
第二步:在TestController中调用TestAction,代码如下
class TestController extends Controller{
public function actions()
{
return [
'test'=>[
'class'=>'frontendlibsTestAction',
]
];
}
第三步:在views/test下添加test.php视图文件
独立动作测试
这是测试Actions的演示页面!
现在,我们就可以在初步浏览一下了
在浏览器中我们输入http://localhost/index.php?r=test/test,则会显示出刚才写的视图代码;
接下来再来点带参数的
第四步:修改TestAction。phpclass TestAction extends Action {
public $param1=NULL;
public $param2=NULL;
public function run($param=NULL) {
return $this->controller->render('test',[
'param'=>$param,
'param1'=>$this->param1,
'param2'=>$this->param2
]);
}
}
可以看到有一个可通过浏览器传递的参数param,其他两个是可配置的参数。
第五步:修改view视图文件views/test/test.php:
TestAction
这是TestAction演示页面!
$param=""
$param1=""
$param2=""
在浏览器中输入http://localhost/index.php?r=test/test¶m=actiontest,则会显示出刚才修改的视图代码
好了独立动作的所有都进行了一遍,现象大家如果要修改默认提供的error效果,也可以找到相应的文件了。
最后,Yii2共提供了如下系统级的actions,可以直接使用:
InlineAction
CaptchaAction
CreateAction
DeleteAction
IndexAction
OptionsAction
UpdateAction
ViewAction
ErrorAction
GenerateAction