YII2 内置独立操作

Posted 百事可口

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YII2 内置独立操作相关的知识,希望对你有一定的参考价值。

转: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。php
class 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

以上是关于YII2 内置独立操作的主要内容,如果未能解决你的问题,请参考以下文章

yii2 内置事件

yii2内置响应协商行为类ContentNegotiator

如何使用yii2的缓存依赖特性

Yii2 自定义独立验证器

为啥 gl_Color 不是片段着色器的内置变量?

使用从循环内的代码片段中提取的函数避免代码冗余/计算开销