zoukankan      html  css  js  c++  java
  • yii2的请求(request)、响应与跳转(response)、缓存(session)常用操作

    一、yii2 request操作
    Yii::$app->request->get();//等价于:$_GET;
    Yii::$app->request->post();//等价于:$_POST;
    Yii::$app->request->get('id'); //等价于:isset($_GET['id']) ? $_GET['id'] : null;
    Yii::$app->request->get('id’,1); //等价于:isset($_GET['id']) ? $_GET['id'] : 1;
    // 取得请求中的所有参数
    Yii::$app->request->bodyParams;
    //// 取得请求中的参数 "id"
    Yii::$app->request->getBodyParam('id'); 
    //判断是否一个 AJAX 请求
    Yii::$app->request->isAjax
    //判断是否一个 GET 请求
    Yii::$app->request->isGet
    //判断是否一个 POST 请求
    Yii::$app->request->isPost
    //判断是否一个 PUT 请求
    Yii::$app->request->isPut


    // 返回 Accept header 值,其中Yii::$app->request->headers是一个 yiiwebHeaderCollection 对象
    $accept = Yii::$app->request->headers->get('Accept');
    // 判断是否头部是否有User-Agent 头
    Yii::$app->request->has('User-Agent’);


    获取客户端的host name
    Yii::$app->request->userHost;
    获取客户端的IP地址
    Yii::$app->request->userIP;


    二、yii2 response操作
    ////==响应头部:Yii::$app->response->headers;
    // 增加一个 Pragma 头,已存在的Pragma 头不会被覆盖。
    Yii::$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::$app->response->content;
    //设置相应主体的内容
    Yii::$app->response->content = 'hello world!';


    //在发送响应给终端用户之前需要格式化
    Yii::$app->response->format = yiiwebResponse::FORMAT_JSON;
    Yii::$app->response->data = ['message' => 'hello world'];


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


    //浏览器跳转
    return $this->redirect('http://example.com/new', 301);
    //可直接调用redirect()再调用send()方法来确保没有其他内容追加到响应中。
    return Yii::$app->response->redirect('http://example.com/new', 301)->send();
    //发送文件提供在浏览器上下载
    return Yii::$app->response->sendFile('path/to/file.txt');
    //发送文件提供在浏览器上下载,并用send()方法确保没有其他内容追加到响应中。
    return Yii::$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::$app->session->has('language')) ...
    if (isset(Yii::$app->session['language'])) ...
    if (isset($_SESSION['language'])) ...


    // 获取session中的变量值,以下用法是相同的:
    $language = Yii::$app->session->get('language');
    $language =Yii::$app->session['language’];//??待验证
    $language = isset($_SESSION['language']) ? $_SESSION['language'] : null;


    // 设置一个session变量,以下用法是相同的:
    Yii::$app->session->set('language', 'en-US');
    Yii::$app->session['language'] = 'en-US';
    $_SESSION['language'] = 'en-US';


    // 删除一个session变量,以下用法是相同的:
    Yii::$app->session->remove('language');
    unset($Yii::$app->session['language']);
    unset($_SESSION['language']);


    // 遍历所有session变量,以下用法是相同的:
    foreach (Yii::$app->session as $name => $value) ...
    foreach ($_SESSION as $name => $value) ...

    ---------------------

  • 相关阅读:
    labview dll 崩溃
    java方法01什么是方法?
    java控制流程控制10增强For循环
    Java方法05可变参数
    java流程控制09打印九九乘法表
    Java流程控制12打印三角形及DUG
    Java方法02方法的定义和调用
    Java流程控制08For循环详解
    java流程控制11break、continue、goto
    java方法04命令行传递参数
  • 原文地址:https://www.cnblogs.com/shantianle/p/10099070.html
Copyright © 2011-2022 走看看