전 yii를 처음 사용하고 일부 관리 역할에서만 사용되는 다음 코드가 있습니다. 필요에 따라yii2의 ForbiddenHttpException에 대해 스타일이 지정된 오류 동작이 반환되지 않습니다.
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
//'only' => ['index', 'view', 'create', 'update','delete'],
'rules' => [
[
'allow' => true,
'roles' => ['admin'],
],
],
],
];
}
비 관리자 역할에서이 컨트롤러에 모든 시도가 차단되지만 스타일 YII의 오류 조치는 반환되지 않습니다. 내 main.php 파일에 다음과 같은 구성 요소가 :
'errorHandler' => [
'errorAction' => 'main/error',
],
을하지만이 작동하지, 내가 가진 전부입니다
An Error occurred while handling another error:
yii\web\ForbiddenHttpException: شما برای انجام این عملیات، دسترسی ندارید. in C:\xampp\htdocs\food\vendor\yiisoft\yii2\filters\AccessControl.php:151
Stack trace:
#0 C:\xampp\htdocs\food\vendor\yiisoft\yii2\filters\AccessControl.php(134): yii\filters\AccessControl->denyAccess(Object(yii\web\User))
#1 C:\xampp\htdocs\food\vendor\yiisoft\yii2\base\ActionFilter.php(75): yii\filters\AccessControl->beforeAction(Object(yii\web\ErrorAction))
#2 [internal function]: yii\base\ActionFilter->beforeFilter(Object(yii\base\ActionEvent))
#3 C:\xampp\htdocs\food\vendor\yiisoft\yii2\base\Component.php(545): call_user_func(Array, Object(yii\base\ActionEvent))
#4 C:\xampp\htdocs\food\vendor\yiisoft\yii2\base\Controller.php(272): yii\base\Component->trigger('beforeAction', Object(yii\base\ActionEvent))
#5 C:\xampp\htdocs\food\vendor\yiisoft\yii2\web\Controller.php(164): yii\base\Controller->beforeAction(Object(yii\web\ErrorAction))
#6 C:\xampp\htdocs\food\vendor\yiisoft\yii2\base\Controller.php(154): yii\web\Controller->beforeAction(Object(yii\web\ErrorAction))
#7 C:\xampp\htdocs\food\vendor\yiisoft\yii2\base\Module.php(523): yii\base\Controller->runAction('error', Array)
#8 C:\xampp\htdocs\food\vendor\yiisoft\yii2\web\ErrorHandler.php(95): yii\base\Module->runAction('main/error')
#9 C:\xampp\htdocs\food\vendor\yiisoft\yii2\base\ErrorHandler.php(111): yii\web\ErrorHandler->renderException(Object(yii\web\ForbiddenHttpException))
#10 [internal function]: yii\base\ErrorHandler->handleException(Object(yii\web\ForbiddenHttpException))
#11 {main}
Previous exception:
yii\web\ForbiddenHttpException: شما برای انجام این عملیات، دسترسی ندارید. in C:\xampp\htdocs\food\vendor\yiisoft\yii2\filters\AccessControl.php:151
Stack trace:
#0 C:\xampp\htdocs\food\vendor\yiisoft\yii2\filters\AccessControl.php(134): yii\filters\AccessControl->denyAccess(Object(yii\web\User))
#1 C:\xampp\htdocs\food\vendor\yiisoft\yii2\base\ActionFilter.php(75): yii\filters\AccessControl->beforeAction(Object(yii\base\InlineAction))
#2 [internal function]: yii\base\ActionFilter->beforeFilter(Object(yii\base\ActionEvent))
#3 C:\xampp\htdocs\food\vendor\yiisoft\yii2\base\Component.php(545): call_user_func(Array, Object(yii\base\ActionEvent))
#4 C:\xampp\htdocs\food\vendor\yiisoft\yii2\base\Controller.php(272): yii\base\Component->trigger('beforeAction', Object(yii\base\ActionEvent))
#5 C:\xampp\htdocs\food\vendor\yiisoft\yii2\web\Controller.php(164): yii\base\Controller->beforeAction(Object(yii\base\InlineAction))
#6 C:\xampp\htdocs\food\vendor\yiisoft\yii2\base\Controller.php(154): yii\web\Controller->beforeAction(Object(yii\base\InlineAction))
#7 C:\xampp\htdocs\food\vendor\yiisoft\yii2\base\Module.php(523): yii\base\Controller->runAction('', Array)
#8 C:\xampp\htdocs\food\vendor\yiisoft\yii2\web\Application.php(102): yii\base\Module->runAction('main/', Array)
#9 C:\xampp\htdocs\food\vendor\yiisoft\yii2\base\Application.php(380): yii\web\Application->handleRequest(Object(yii\web\Request))
#10 C:\xampp\htdocs\food\admin\web\index.php(20): yii\base\Application->run()
#11 {main}
모든 지침은 appreciet입니다. 메인 컨트롤러에서
기본 SiteController의 이름을 MainController로 변경했습니다. – goseo
오류보기가 저장된 위치는 어디입니까? MainController 코드 – Kyle
@Kyle을 게시하십시오.'views/main' 디렉토리에'error.php'라는 이름으로 저장됩니다. – goseo