云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

Yii::$app->request常用属性和方法

jxf315 2024-12-03 16:04:39 教程文章 52 ℃

应用请求(yii::$app->request)是用 yii\web\Request 对象来表示的。

通过 request 组件来获取请求参数(代替 $_GET 和 $_POST):

$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'] : '';

获取通过 PUT, PATCH 或者其他的 request methods 请求方法提交上来的参数:

// 返回所有参数:
$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();

请求 URLs:

// 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();

HTTP头:

// $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();

Tags:

最近发表
标签列表