behaviors()中rule检测未通过时,返回的数据如何在前端进行处理? [ 2.0 版本 ]
我使用Ajax请求数据,但是rule检测未通过,behaviors()中怎么向Ajax返回错误信息?谢谢!
protected $except=[];
protected $verbs=['*'];
public function behaviors(){
return [
'access'=>[
'class'=>\yii\filters\AccessControl::className(),
'except'=>$this->except,
'user'=>'admin',
'rules'=>[
[
'allow'=>false,
'roles'=>['?'],
],
[
'allow'=>true,
'roles'=>['@'],
],
],
],
'verbs'=>[
'class'=>\yii\filters\VerbFilter::className(),
'actions'=>$this->verbs,
],
];
}
阿江 补充于 2017-05-26 20:55
现在前端Ajax显示的是:undefined。逻辑是正确的,但是错误信息显示的不正确。
最佳答案
-
dingjj2010 发布于 2017-05-27 08:48 举报
提供一个方法,在BEFORE_REQUEST添加事件处理,判断request的isAjax是否为true,如果是ajax,修改返回的response,可以选择返回json格式的内容.
其他 1 个回答
-
protected $except=[]; protected $verbs=['*']; public function behaviors(){ return [ 'access'=>[ 'class'=>\yii\filters\AccessControl::className(), 'except'=>$this->except, 'user'=>'admin', 'denyCallback' => function ($rule, $action) { //认证失败后回调函数 在这里做有意义的事、、、、 }, 'rules'=>[ [ 'allow'=>false, 'roles'=>['?'], ], [ 'allow'=>true, 'roles'=>['@'], ], ], ], 'verbs'=>[ 'class'=>\yii\filters\VerbFilter::className(), 'actions'=>$this->verbs, ], ]; }
阿江
注册时间:2015-10-18
最后登录:2024-03-03
在线时长:186小时21分
最后登录:2024-03-03
在线时长:186小时21分
- 粉丝94
- 金钱16816
- 威望160
- 积分20276