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) ...

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

  • 相关阅读:
    华为预测服务新版本上线!自定义预测轻松满足您的个性化需求
    HMS Core华为分析丨受众细分,多场景促进精益运营
    关注推送数据报告、消息回执功能,提高推送效率
    快应用tabs和video组件滑动事件优先级问题
    视频播放如何更安全流畅?看南非影音娱乐DStv Now App集成系统完整性检测&应用安全检测功能!
    华为联运游戏或应用审核驳回:HMS Core升级提示语言类型错误
    路径偏移定位不准确?华为定位SuperGNSS技术帮您解决这一难题!
    如何在Flutter中集成华为认证服务
    Oracle定时存储过程
    国家气象局提供的天气预报接口
  • 原文地址:https://www.cnblogs.com/shantianle/p/10099070.html
Copyright © 2011-2022 走看看