controller); $request_action = $action->id; $user_id = 46; $platform_id = 17; $user_auth = Yii::$app->params['user_auth']['user_auth']; $user_auth_map = $user_auth[$platform_id] ?? null; if(empty($user_auth_map)){ $code = '40001'; $message = 'platform auth error'; goto doEnd; } $user_auth_map = $user_auth_map[$user_id] ?? null; if(empty($user_auth_map)){ $code = '40001'; $message = 'user auth error'; goto doEnd; } $auth_type_map = Yii::$app->params['user_auth'][$user_auth_map]; #$auth_type_map = array_unique($auth_type_map); #var_dump($auth_type_map);exit; $switch = false; foreach ($auth_type_map as $key => $auth_type){ if($request_class == $auth_type['class']){ $action_map = $auth_type['actions']; $switch = true; break; } } if(false == $switch){ $code = '40003'; $message = 'controller auth error'; goto doEnd; } if(empty($action_map)){ return true; } if(in_array($request_action, $action_map)){ return true; }else{ $code = '40004'; $message = 'action auth error'; goto doEnd; } doEnd : // 返回错误 $response_message = new ResponseMsg(); $content = $response_message->jsonError($message, $code); $content = $response_message->withHeaders($response_message->getHeaders())->withContent($content); Yii::$app->response->data = $content; Yii::$app->response->send(); return false; } }