应用请求(yii::$app->request)是用 yii\web\Request 对象来表示的。
$request = Yii::$app->request; $get = $request->get(); // 等价于: $get = $_GET; $id = $request->get('id'); // 等价于: $id = isset($_GET['id']) ? $_GET['id'] : null; $id = $request->get('id', 1); // 等价于: $id = isset($_GET['id']) ? $_GET['id'] : 1; $post = $request->post(); // 等价于: $post = $_POST; $name = $request->post('name'); // 等价于: $name = isset($_POST['name']) ? $_POST['name'] : null; $name = $request->post('name', ''); // 等价于: $name = isset($_POST['name']) ? $_POST['name'] : '';
// 返回所有参数: $params = $request->bodyParams; $params = $request->getBodyParams(); // 返回参数'id': $params = $request->getBodyParam('id');
$method = $request->method; // 返回当前使用的请求方法, eg:'POST','GET' $method = $request->getMethod(); $request->isGet; // 判断是否是一个 GET 请求 $request->getIsGet(); $request->isPost; // 判断是否是一个 POST 请求 $request->getIsPost(); $request->isAjax; // 判断是否是一个 AJAX 请求 $request->getIsAjax(); $request->isPut; // 判断是否是一个 PUT 请求 $request->getIsPut(); $request->isHead; // 判断是否是一个 HEAD 请求 $request->getIsHead(); $request->isPatch; // 判断是否是一个 PATCH 请求 $request->getIsPatch(); $request->isDelete; // 判断是否是一个删除请求 $request->getIsDelete(); $request->isFlash; // 判断是否是一个 Adobe Flash 或 Flex 请求 $request->getIsFlash(); $request->isOptions; // 判断是否是一个 OPTIONS 请求 $request->getIsOptions(); $request->isPjax; // 判断是否是一个 PJAX 请求 $request->getIsPjax(); $request->isSecureConnection; // 判断是否是通过安全通道(HTTPS)发送的请求 $request->getIsSecureConnection();
// request 组件提供了许多方式来检测当前请求的 URL. // 假设被请求的URL是 http://example.com/index.php/article/view?id=100 $request->url; // 返回当前请求的相对Url, eg:'/article/view?id=100' $request->getUrl(); $request->absoluteUrl; // 返回当前请求的绝对Url, eg:'http://yii2advanced.com/article/view?id=100' $request->getAbsoluteUrl(); $request->pathInfo; // 返回当前请求的路径信息, eg:'article/view' $request->getPathInfo(); $request->queryString; // 返回当前请求问号后的部分, eg:'id=100' $request->getQueryString(); $request->scriptUrl; // 返回当前请求的入口文件, eg:'/index.php' $request->getScriptUrl(); $request->hostInfo; // 返回当前请求的主机部分, eg:'http://yii2advanced.com' $request->getHostInfo(); $request->serverName; // 返回当前请求的域名, eg:'yii2advanced.com' $request->getServerName(); $request->serverPort; // 返回当前请求的服务器端口号, eg:80 $request->getServerPort(); $request->baseUrl; // eg:'' $request->getBaseUrl();
// $headers 是一个 yii\web\HeaderCollection 对象, 详细的属性和方法查看该对象 // $accept 返回 Accept Header 值, eg:'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' $headers = Yii::$app->request->headers; $headers = Yii::$app->request->getHeaders(); $accept = $headers->get('Accept'); // 返回 User-Agent 头, eg:'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0' Yii::$app->request->userAgent; Yii::$app->request->getUserAgent(); // 返回 Content-Type 头的值, Content-Type 是请求体中MIME类型数据 Yii::$app->request->contentType; Yii::$app->request->getContentType(); // 返回用户可接受的内容MIME类型. 返回的类型是按照他们的质量得分来排序的, 得分最高的类型将被最先返回. Yii::$app->request->acceptableContentTypes; Yii::$app->request->getAcceptableContentTypes(); // 返回用户可接受的语言. 返回的语言是按照他们的偏好层次来排序的, 第一个参数代表最优先的语言. Yii::$app->request->acceptableLanguages; Yii::$app->request->getAcceptableLanguages();
Yii::$app->request->userIP; // 返回用户的 ip 地址, eg:'127.0.0.1' Yii::$app->request->getUserIP(); Yii::$app->request->userHost; // 返回用户的主机名 Yii::$app->request->getUserHost();
其他属性和方法:
Yii::$app->request->authUser; Yii::$app->request->getAuthUser(); Yii::$app->request->authPassword; Yii::$app->request->getAuthPassword(); Yii::$app->request->behaviors; Yii::$app->request->behaviors(); Yii::$app->request->getBehaviors(); Yii::$app->request->csrfParam; Yii::$app->request->csrfCookie; Yii::$app->request->cookieValidationKey; Yii::$app->request->csrfTokenFromHeader; Yii::$app->request->getCsrfTokenFromHeader(); Yii::$app->request->csrfToken; Yii::$app->request->getCsrfToken(); Yii::$app->request->cookies; Yii::$app->request->getCookies(); Yii::$app->request->detachBehaviors(); Yii::$app->request->eTags; Yii::$app->request->getETags(); Yii::$app->request->enableCsrfCookie; Yii::$app->request->enableCsrfValidation; Yii::$app->request->enableCookieValidation; Yii::$app->request->ensureBehaviors(); Yii::$app->request->getPreferredLanguage(); Yii::$app->request->hostName; Yii::$app->request->getHostName(); Yii::$app->request->init(); Yii::$app->request->isConsoleRequest; Yii::$app->request->getIsConsoleRequest(); Yii::$app->request->methodParam; Yii::$app->request->parsers; Yii::$app->request->port; Yii::$app->request->getPort(); Yii::$app->request->params; Yii::$app->request->getParams(); Yii::$app->request->queryParams; Yii::$app->request->getQueryParams(); Yii::$app->request->resolve(); Yii::$app->request->referrer; Yii::$app->request->getReferrer(); Yii::$app->request->rawBody; Yii::$app->request->getRawBody(); Yii::$app->request->scriptFile; Yii::$app->request->getScriptFile(); Yii::$app->request->securePort; Yii::$app->request->getSecurePort(); Yii::$app->request->validateCsrfToken(); Yii::$app->request->attachBehavior(); Yii::$app->request->attachBehaviors(); Yii::$app->request->canSetProperty(); Yii::$app->request->canGetProperty(); Yii::$app->request->detachBehavior(); Yii::$app->request->getBehavior(); Yii::$app->request->getQueryParam(); Yii::$app->request-getservbyname(); Yii::$app->request-getservbyport(); Yii::$app->request-gettype(); Yii::$app->request-gettext(); Yii::$app->request-gettimeofday(); Yii::$app->request->hasMethod(); Yii::$app->request->hasProperty(); Yii::$app->request->hasEventHandlers(); Yii::$app->request->on(); Yii::$app->request->off(); Yii::$app->request->parseAcceptHeader(); Yii::$app->request->setUrl(); Yii::$app->request->setAcceptableContentTypes(); Yii::$app->request->setAcceptableLanguages(); Yii::$app->request->setBaseUrl(); Yii::$app->request->setBodyParams(); Yii::$app->request->setHostInfo(); Yii::$app->request->setIsConsoleRequest(); Yii::$app->request->setParams(); Yii::$app->request->setPathInfo(); Yii::$app->request->setPort(); Yii::$app->request->setQueryParams(); Yii::$app->request->setRawBody(); Yii::$app->request->setScriptFile(); Yii::$app->request->setScriptUrl(); Yii::$app->request->setSecurePort(); Yii::$app->request->trigger();