Yii2 自定义过滤器的使用方式
Published on:2022-04-25
过滤器是 控制器动作 执行之前或之后执行的对象。我们可以将其当作中间件来使用。
下面介绍自定义过滤器的使用方法。
1.创建过滤器FilterToken,让其继承yii\base\ActionFilter
class FilterLogin extends ActionFilter
{
use TraitToken;
/**
* 平台类型
* @var string
*/
public string $type = '';
/**
* 方法前执行操作
* @param yii\base\Action $action
* @return bool
*/
public function beforeAction($action): bool
{
if (!parent::beforeAction($action)) {
return false;
}
$token = Yii::$app->request->post('token', '');
//对token进行处理或查询
$token_record = xxxxx;
//当token不存在或失效 则返回json
if (!$token_record) {
Yii::$app->response->data = ['code'=>305,'msg'=>'登录失效'];
Yii::$app->response->format = Response::FORMAT_JSON;
return false;
}
//将token信息传递
$bodyParams = Yii::$app->request->bodyParams;
$bodyParams['__token'] = $token_record;
Yii::$app->request->setBodyParams($bodyParams);
return true;
}
}
2.控制器中使用
public function behaviors()
{
return [
'FilterLogin'=>[
'class' => \api\components\FilterLogin::class,
'type'=>'app' //可传递参数
]
];
}
public function actionIndex(){
//获取传递来的token记录信息
$token = \Yii::$app->request->getBodyParam('__token');
}
留言列表(0)
加载更多
留言
开源项目
- B5LaravelCMF:基于laravel9+bootstrap3实现的快速开发后台
- B5YiiCMF:基于Yii2+bootstrap3 实现的快速开发后台管理系统
- B5ThinkCmf:基于ThinkPHP6+bootstrap3 实现的快速开发后台管理系统
- B5GoCmf:gin + sqlx +bootstrap 实现后端管理系统
- See also:gitee.com@b5net
最新评论
wpstqe
:作者大大有没有建一个QQ群的计划?
流浪的PHPer
:感谢开源项目,快速开发非常的好用!
小白
:大佬您好 请问一下 http://b5laravelcmf.b5net.com/admin这个演示网址的全部代码有吗,gitee上不全呢,还能提供一下吗,感激不尽阿
tz
:大佬 B5YiiCMF 还开放吗
weifox
on GoLang常用的三方库
:还有 https://github.com/golang-module/carbon
php
:关于导出功能:1、B5thinkCMF部署后 参数的导出功能点击后就白屏了,不知道是哪里有问题?2、人员部门的导出功能没看懂怎么配置的? 只是启用exportshow=true吗
方便的话请答复下,谢谢!
初学者
:您好! 部署了您的B5ThinkCMF,请教下 使用新增功能如何实现二级联动呢 ?谢谢
11
:22
pcy
:前排围观
Louis
:冰舞的博客使用yii框架做的吧,B5ThinkCMF在本地部署后,登录系统的响应时间要比B5YiiCMF的登录时间长,还有一些Bug待修复
文章分类
标签