• Yii2 响应部分 response


    当应用完成处理一个请求后, 会生成一个yiiwebResponse响应对象并发送给终端用户 响应对象包含的信息有HTTP状态码,HTTP头和主体内容等, 网页应用开发的最终目的本质上就是根据不同的请求构建这些响应对象。
    设置状态码
    
    基本上我们并不会直接去设置网页的状态码,所以了解一下就可以了。
    
    Yii::$app->response->statusCode = 404;
    
        1
    
        1
    
    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();
    
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
    
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
    
    浏览器跳转
    
    下面列出来的这两个跳转蛮常用的,所以一定要记住
    
    public function actionIndex(){
        // 操作方法内调用
        $this->redirect('http://www.yiichina.com/' , 301);
    }
    
    // 如果需要在操作方法外面使用
    yii::$app->response->redirect('http://www.baidu.com/');
    
        1
        2
        3
        4
        5
        6
        7
    
        1
        2
        3
        4
        5
        6
        7
    
    当然Yii也提供了其他的跳转方式,手册没有列出来
    
    public function actionIndex(){
        // 跳转到首页
        $this->goHome();
    
        // 返回上一页
        $this->goBack();
    
        // 刷新页面
        $this->refresh();
    
        // 当然这些跳转方式不必非要在操作方法内使用,根据自己的需求去调用。
    }
    
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
    
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
    
    发送文件
    
    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();
  • 相关阅读:
    mongodb教程
    redis高级知识
    memcached删除机制与大数据缓存问题
    nginx 运维基础
    mysql 集群与分区
    Memcached之缓存雪崩,缓存穿透,缓存预热,缓存算法
    git cz配置
    Angular零碎知识点-持续补充
    Vue学习笔记-组件
    Vue学习笔记-自定义指令生命周期函数
  • 原文地址:https://www.cnblogs.com/wuheng1991/p/7389752.html
Copyright © 2020-2023  润新知