Yii框架请求
$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'] : '';
2、请求方法
$request = Yii::$app->request; if ($request->isAjax) { /* 该请求是一个 AJAX 请求 */ }
if ($request->isGet) { /* 请求方法是 GET */ }
if ($request->isPost) { /* 请求方法是 POST */ }
if ($request->isPut) { /* 请求方法是 PUT */ }
3、请求URL
request
组件提供了许多方式来检测当前请求的URL。
假设被请求的URL是 http://example.com/admin/index.php/product?id=100
, 你可以像下面描述的那样获取URL的各个部分:
- yii\web\Request::url:返回
/admin/index.php/product?id=100
, 此URL不包括host info部分。 - yii\web\Request::absoluteUrl:返回
http://example.com/admin/index.php/product?id=100
, 包含host infode的整个URL。 - yii\web\Request::hostInfo:返回
http://example.com
, 只有host info部分。 - yii\web\Request::pathInfo:返回
/product
, 这个是入口脚本之后,问号之前(查询字符串)的部分。 - yii\web\Request::queryString:返回
id=100
,问号之后的部分。 - yii\web\Request::baseUrl:返回
/admin
, host info之后, 入口脚本之前的部分。 - yii\web\Request::scriptUrl:返回
/admin/index.php
, 没有path info和查询字符串部分。 - yii\web\Request::serverName:返回
example.com
, URL中的host name。 - yii\web\Request::serverPort:返回 80, 这是web服务中使用的端口。
4、http头
// $headers 是一个 yii\web\HeaderCollection 对象
$headers = Yii::$app->request->headers; // 返回 Accept header 值
$accept = $headers->get('Accept'); // 增加一个 Pragma 头,已存在的Pragma 头不会被覆盖。
$headers->add('Pragma', 'no-cache'); // 设置一个Pragma 头. 任何已存在的Pragma 头都会被丢弃
$headers->set('Pragma', 'no-cache'); // 删除Pragma 头并返回删除的Pragma 头的值到数组
$values = $headers->remove('Pragma'); if ($headers->has('User-Agent')) { /* 这是一个 User-Agent 头 */ }
5、客户端信息
$userHost = Yii::$app->request->userHost;
$userIP = Yii::$app->request->userIP;
Yii框架请求的更多相关文章
- Yii框架 400 错误
YII 400错误 在YII框架中400错误是csrf校验失败的意思 csrf是什么? CSRF(Cross-site request forgery跨站请求伪造,也被称为"One Cli ...
- 使用 OAuth2-Server-php 在 Yii 框架上搭建 OAuth2 Server
原文转自 http://www.cnblogs.com/ldms/p/4565547.html Yii 有很多 extension 可以使用,在查看了 Yii 官网上提供的与 OAuth 相关的扩展后 ...
- Yii 框架学习--01 框架入门
Yii 是一个高性能的,适用于开发 WEB2.0 应用的 PHP 框架. Yii目前有两个主要的版本: 2.0 和 1.1.本文以YII 2.0.7为例. 环境需求 Yii2.0 框架有一些系统上的需 ...
- yii框架
Yii Framework是一个基于组件.用于开发大型 Web 应用的高性能 PHP 框架.Yii提供了今日Web 2.0应用开发所需要的几乎一切功能.Yii是最有效率的PHP框架之一.Yii是创始人 ...
- YII框架源码分析(百度PHP大牛创作-原版-无广告无水印)
YII 框架源码分析 百度联盟事业部——黄银锋 目 录 1. 引言 3 1.1.Yii 简介 3 1.2.本文内容与结构 3 2.组件化与模块化 4 2.1.框架加载和运行流程 4 ...
- Yii框架zii.widgets.grid自定义按钮,ajax触发事件并提示
相关类手册: http://www.yiichina.com/api/CButtonColumn buttons 属性 public array $buttons; the configurati ...
- Yii框架tips(转)
yii的一些小的技巧 http://www.yiichina.com/topic/151 db组件 'schemaCachingDuration'=>3600, 为什么不起做用?需要开缓存 如何 ...
- Yii框架tips
db组件 'schemaCachingDuration'=>3600, 为什么不起做用?需要开缓存 如何在页面下边显示sql的查询时间在log组件的routes中加入 array('class' ...
- yii框架基本操作
<?php namespace app\controllers; use yii\web\Controller; use app\models\DemoForm; use app\models\ ...
随机推荐
- 使用spring注解——定义bean和自动注入
对于java bean的定义和依赖配置,使用xml文件真心是不方便. 今天学习如何用注解,解决bean的定义和注入. 常用注解: 1.自动注入:@Resources,@Autowired 2.Bean ...
- AJAX服务器返回数据 连接数据库查询数据
getcustomer.asp" 中的源代码负责对数据库进行查询,然后用 HTML 表格返回结果: <% response.expires=-1 sql="SELECT * ...
- 9 并发编程-(线程)-守护线程&互斥锁
一 .守护线程 无论是进程还是线程,都遵循:守护xxx会等待主xxx运行完毕后被销毁 需要强调的是:运行完毕并非终止运行 1.对主进程来说,运行完毕指的是主进程代码运行完毕 2.对主线程来说,运行完毕 ...
- UI5-文档-4.16-Dialogs and Fragments
在这一步中,我们将进一步研究另一个可以用来组装视图的元素:the fragment. 片段是轻量级UI部件(UI子树),可以重用,但是没有任何控制器.这意味着,每当你想定义一个特定UI的一部分是跨多个 ...
- Java 静态代理和动态代理例子
代理Proxy: Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题 代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问.代理类负责为委 ...
- JSTL标签库学习3-fn
fn的全称为functions, 就是提供一些方法,函数等. 主要是一些操作字符串的函数. fn:contains(str, str)显示用户浏览器,操作系统.可以从header中获取user-age ...
- eclipse添加源码的另外一种方法
当我们使用maven或者gradle时,我们不需要担心源码的问题.Maven会帮我们下载jar包的同时下载对应的源码包.一般为source.jar,比如servlet-api-2.5-sources. ...
- java内存溢出的原因
前几天 ,面试被问到这个, 我只说了个死循环,所以上网查了下 ,下面给个总结: 内存溢出就是系统可以提供给Java虚拟机的内存不足导致的,主要分为以下几种情况: 1.要加载的数据量过大,比如加载一个很 ...
- zoj1003-Max Sum (最大连续子序列之和)
http://acm.hdu.edu.cn/showproblem.php?pid=1003 Max Sum Time Limit: 2000/1000 MS (Java/Others) Mem ...
- RMQ(或运算)
RMQ https://ac.nowcoder.com/acm/contest/283/J 题目描述 按位或运算:处理两个长度相同的二进制数,两个相应的二进位中只要有一个为1,该位的结果值为1.例如5 ...