>백엔드 개발 >PHP 튜토리얼 >yii2가 컨트롤러에서 권한을 확인할 때 오류를 보고합니다.

yii2가 컨트롤러에서 권한을 확인할 때 오류를 보고합니다.

WBOY
WBOY원래의
2016-12-01 00:56:591284검색

rbac 권한은 정상적으로 검증이 가능하지만, 컨트롤러에서 검증하면 예외가 발생합니다.
컨트롤러의 코드는 이렇습니다

공개 함수 beforeAction($action) {

<code>$controller = Yii::$app->controller->id;        //获取控制器
$action = Yii::$app->controller->action->id;        //获取方法
if(Yii::$app->user->can($controller.'_'.$action)){
    return true;
}else{
    throw new \yii\web\UnauthorizedHttpException('你没有操作权限');
}</code>

}
해당 페이지로 이동하면 작업 권한이 없다는 메시지가 표시됩니다. 해당 $controller.'_'.$action 데이터가 데이터베이스에 추가되었습니다...

답글 내용:

rbac 권한은 정상적으로 검증이 가능하지만, 컨트롤러에서 검증하면 예외가 발생합니다.
컨트롤러의 코드는 이렇습니다

공개 함수 beforeAction($action) {

<code>$controller = Yii::$app->controller->id;        //获取控制器
$action = Yii::$app->controller->action->id;        //获取方法
if(Yii::$app->user->can($controller.'_'.$action)){
    return true;
}else{
    throw new \yii\web\UnauthorizedHttpException('你没有操作权限');
}</code>

}
해당 페이지로 이동하면 작업 권한이 없다는 메시지가 표시됩니다. 해당 $controller.'_'.$action 데이터가 데이터베이스에 추가되었습니다...

데이터에 실제 주소를 쓰세요. 예:
'/'.$controller.'/'.$action

출력합니다 $controller.'_'.$action 이 변수는 상위 클래스인
Yii::$app->controller->id 및 Yii::$app->controller->action에서 직접 사용합니다. ->id가 null입니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.