针对特定控制器的Yii框架自定义403处理
我有一个要求,检查当前登录用户是否是一组操作的付费成员。如果用户不是付费会员,则必须将其发送到take membership页面。下面是代码。在控制器中(Yii框架) 现在,针对特定控制器的Yii框架自定义403处理,yii,Yii,我有一个要求,检查当前登录用户是否是一组操作的付费成员。如果用户不是付费会员,则必须将其发送到take membership页面。下面是代码。在控制器中(Yii框架) 现在,hasPayed()函数为未付款的成员返回false,目前用户被重定向到403异常 我想将403例外页面自定义为“获取会员资格”页面。有办法吗?因此,从该特定控制器\操作引发的所有异常都将发送到take membership页面,rest 403异常保持不变?尝试使用来自的deniedCallback public func
hasPayed()
函数为未付款的成员返回false,目前用户被重定向到403异常
我想将403例外页面自定义为“获取会员资格”页面。有办法吗?因此,从该特定
控制器\操作引发的所有异常都将发送到take membership页面,rest 403异常保持不变?尝试使用来自的deniedCallback
public function accessRules()
{ return array(
array('allow',
'actions'=>array('enroll','index','admin','suggesttags'),
'users'=>array('@'),
),
array('allow',
'actions'=>array('view', 'read'),
'users'=>array(Yii::app()->user->name),
'expression' => 'Yii::app()->controller->hasPaied()'
),
// optional, the denied method callback name, that will be called once the
// access is denied, instead of showing the customized error message. It can also be
// a valid PHP callback, including class method name (array(ClassName/Object, MethodName)),
// or anonymous function (PHP 5.3.0+). The function/method signature should be as follows:
// function foo($user, $rule) { ... }
// where $user is the current application user object and $rule is this access rule.
// This option is available since version 1.1.11.
'deniedCallback'=>'redirectToDeniedMethod',