Yii之响应部分 - response

12 篇文章 0 订阅
概述

这里只是简单讲一下用法,如果想更详细的了解,去看 官方手册 比较好。

当应用完成处理一个请求后, 会生成一个yii\web\Response响应对象并发送给终端用户 响应对象包含的信息有HTTP状态码,HTTP头和主体内容等, 网页应用开发的最终目的本质上就是根据不同的请求构建这些响应对象。

设置状态码

基本上我们并不会直接去设置网页的状态码,所以了解一下就可以了。

\Yii::$app->response->statusCode = 404;
HTTP 头部

Yii 提供了比较简易操作 Http 头部的方法。

$headers = Yii::$app->response->headers;

// 增加一个 Pragma 头,已存在的Pragma 头不会被覆盖。
$headers->add('Pragma', 'no-cache');

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

// 删除Pragma 头并返回删除的Pragma 头的值到数组
$values = $headers->remove('Pragma');

// 获取头部信息的个数
$headers->count();

// 获取已经存在 Pragma 属性的值
$headers->get('Pragma');

// 增加一个 Pragma 头的默认值,如果 Pragma 头已经存在,则不会增加。
$headers->setDefault('Pragma', 'no-cache');

// 查看 Pragma 头是否存在,返回boolean值
$headers->has('Pragma');

// 移除目前存在的所有头部信息
$headers->removeAll();
浏览器跳转

下面列出来的这两个跳转蛮常用的,所以一定要记住

public function actionIndex(){
    // 操作方法内调用
    $this->redirect('http://www.yiichina.com/' , 301);
}

// 如果需要在操作方法外面使用
\yii::$app->response->redirect('http://www.baidu.com/');

当然Yii也提供了其他的跳转方式,手册没有列出来

public function actionIndex(){
    // 跳转到首页
    $this->goHome();

    // 返回上一页
    $this->goBack();

    // 刷新页面
    $this->refresh();

    // 当然这些跳转方式不必非要在操作方法内使用,根据自己的需求去调用。
}
发送文件

yii提供了多种发送文件的模式,基本上已经满足用户的需求了。

public function actionIndex(){
    // 发送一个已存在的文件到客户端
    return \Yii::$app->response->sendFile('./robots.txt');
    // 发送一个文本字符串作为文件到客户端
    return \Yii::$app->response->sendContentAsFile('i love you','yyy.log');
}
// 如果不是在操作方法之内调用,没办法return,yii也追加了此方法
\Yii::$app->response->sendFile('./robots.txt')->send();
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值