yii2的请求(request)、响应与跳转(response)、缓存(session)常用操作

一、yii2 request操作
Yii:: a p p − > r e q u e s t − > g e t ( ) ; / / 等 价 于 : app->request->get();//等价于: app>request>get();//:_GET;
Yii:: a p p − > r e q u e s t − > p o s t ( ) ; / / 等 价 于 : app->request->post();//等价于: app>request>post();//:_POST;
Yii:: a p p − > r e q u e s t − > g e t ( ′ i d ′ ) ; / / 等 价 于 : i s s e t ( app->request->get('id'); //等价于:isset( app>request>get(id);//:isset(_GET[‘id’]) ? G E T [ ′ i d ′ ] : n u l l ; Y i i : : _GET['id'] : null; Yii:: GET[id]:null;Yii::app->request->get('id’,1); //等价于:isset($_GET[‘id’]) ? G E T [ ′ i d ′ ] : 1 ; / / 取 得 请 求 中 的 所 有 参 数 Y i i : : _GET['id'] : 1; // 取得请求中的所有参数 Yii:: GET[id]:1;//Yii::app->request->bodyParams;
取得请求中的参数 “id”
Yii:: a p p − > r e q u e s t − > g e t B o d y P a r a m ( ′ i d ′ ) ; / / 判 断 是 否 一 个 A J A X 请 求 Y i i : : app->request->getBodyParam('id'); //判断是否一个 AJAX 请求 Yii:: app>request>getBodyParam(id);//AJAXYii::app->request->isAjax
//判断是否一个 GET 请求
Yii:: a p p − > r e q u e s t − > i s G e t / / 判 断 是 否 一 个 P O S T 请 求 Y i i : : app->request->isGet //判断是否一个 POST 请求 Yii:: app>request>isGet//POSTYii::app->request->isPost
//判断是否一个 PUT 请求
Yii::$app->request->isPut

// 返回 Accept header 值,其中Yii::$app->request->headers是一个 yii\web\HeaderCollection 对象
a c c e p t = Y i i : : accept = Yii:: accept=Yii::app->request->headers->get(‘Accept’);
// 判断是否头部是否有User-Agent 头
Yii::$app->request->has('User-Agent’);

获取客户端的host name
Yii:: a p p − > r e q u e s t − > u s e r H o s t ; 获 取 客 户 端 的 I P 地 址 Y i i : : app->request->userHost; 获取客户端的IP地址 Yii:: app>request>userHost;IPYii::app->request->userIP;

二、yii2 response操作
==响应头部:Yii:: a p p − > r e s p o n s e − > h e a d e r s ; / / 增 加 一 个 P r a g m a 头 , 已 存 在 的 P r a g m a 头 不 会 被 覆 盖 。 Y i i : : app->response->headers; // 增加一个 Pragma 头,已存在的Pragma 头不会被覆盖。 Yii:: app>response>headers//PragmaPragmaYii::app->response->headers->add(‘Pragma’, ‘no-cache’);

// 设置一个Pragma 头. 任何已存在的Pragma 头都会被丢弃
Yii::$app->response->headers->set(‘Pragma’, ‘no-cache’);

// 删除Pragma 头并返回删除的Pragma 头的值到数组
Yii::$app->response->headers->remove(‘Pragma’);

==响应主体:Yii:: a p p − > r e s p o n s e − > c o n t e n t ; / / 设 置 相 应 主 体 的 内 容 Y i i : : app->response->content; //设置相应主体的内容 Yii:: app>response>content//Yii::app->response->content = ‘hello world!’;

//在发送响应给终端用户之前需要格式化
Yii::KaTeX parse error: Expected 'EOF', got '\yii' at position 25: …onse->format = \̲y̲i̲i̲\web\Response::…app->response->data = [‘message’ => ‘hello world’];

因为响应格式默认为HTML, 只需要在操作方法中返回一个字符串,
如果想使用其他响应格式,应在返回数据前先设置格式, 例如返回json串:
public function actionInfo()
{
\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
return [
‘message’ => ‘hello world’,
‘code’ => 100,
];
}

//浏览器跳转
return KaTeX parse error: Expected 'EOF', got '\Yii' at position 100: …追加到响应中。 return \̲Y̲i̲i̲::app->response->redirect(‘http://example.com/new’, 301)->send();
//发送文件提供在浏览器上下载
return \Yii::KaTeX parse error: Expected 'EOF', got '\Yii' at position 95: …追加到响应中。 return \̲Y̲i̲i̲::app->response->sendFile(‘path/to/file.txt’)->send();

三、yii2 session操作
// 检查session是否开启
Yii::$app->session->isActive;

// 开启session
Yii::$app->session->open();

// 关闭session
Yii::$app->session->close();

// 销毁session中所有已注册的数据
Yii::$app->session->destroy();

// 检查session变量是否已存在,以下用法是相同的:
if (Yii:: a p p − > s e s s i o n − > h a s ( ′ l a n g u a g e ′ ) ) . . . i f ( i s s e t ( Y i i : : app->session->has('language')) ... if (isset(Yii:: app>session>has(language))...if(isset(Yii::app->session[‘language’])) …
if (isset($_SESSION[‘language’])) …

// 获取session中的变量值,以下用法是相同的:
l a n g u a g e = Y i i : : language = Yii:: language=Yii::app->session->get(‘language’);
l a n g u a g e = Y i i : : language =Yii:: language=Yii::app->session['language’];//??待验证
l a n g u a g e = i s s e t ( language = isset( language=isset(_SESSION[‘language’]) ? $_SESSION[‘language’] : null;

// 设置一个session变量,以下用法是相同的:
Yii:: a p p − > s e s s i o n − > s e t ( ′ l a n g u a g e ′ , ′ e n − U S ′ ) ; Y i i : : app->session->set('language', 'en-US'); Yii:: app>session>set(language,enUS);Yii::app->session[‘language’] = ‘en-US’;
$_SESSION[‘language’] = ‘en-US’;

// 删除一个session变量,以下用法是相同的:
Yii:: a p p − > s e s s i o n − > r e m o v e ( ′ l a n g u a g e ′ ) ; u n s e t ( app->session->remove('language'); unset( app>session>remove(language);unset(Yii:: a p p − > s e s s i o n [ ′ l a n g u a g e ′ ] ) ; u n s e t ( app->session['language']); unset( app>session[language]);unset(_SESSION[‘language’]);

// 遍历所有session变量,以下用法是相同的:
foreach (Yii::$app->session as $name => v a l u e ) . . . f o r e a c h ( value) ... foreach ( value)...foreach(_SESSION as $name => $value) …

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值