Yii2.0經常調用的常量、變量、方法、函數

<?php 
    defined('YII_DEBUG') or define('YII_DEBUG', true);  //當在調試模式下,應用會保留更多日誌信息,如果拋出異常,會顯示詳細的錯誤調用堆棧。因此,調試模式主要適合在開發階段使用,YII_DEBUG 默認值爲 false。
    return $this->render('list');                        //加載視圖模板,一定要return 否則會空白
    $this->render('_overview');                          //在視圖模板中,可以通過這種方式加載視圖模板
     
    //#############################請求#######################
    $request = Yii::$app->request;
    $get = $request->get();                          // 等價於: $get = $_GET;
    $id = $request->get('id');                           // 等價於: $id = isset($_GET['id']) ? $_GET['id'] : null;
    $id = $request->get('id', 1);                        // 等價於: $id = isset($_GET['id']) ? $_GET['id'] : 1;
    $post = $request->post();                            // 等價於: $post = $_POST; 
    $name = $request->post('name');                      // 等價於: $name = isset($_POST['name']) ? $_POST['name'] : null;
    $name = $request->post('name', '');                  // 等價於: $name = isset($_POST['name']) ? $_POST['name'] : '';
     
    //#############################請求方式#######################
    $request = Yii::$app->request;
    if ($request->isAjax) { /* 該請求是一個 AJAX 請求 */ }
    if ($request->isGet)  { /* 請求方法是 GET */ }
    if ($request->isPost) { /* 請求方法是 POST */ }
    if ($request->isPut)  { /* 請求方法是 PUT */ }
     
    //#############################請求類屬性#######################
    Yii::$app->request->url;                      //結果:/admin/index.php/product?id=100, 此URL不包括host info部分。
    Yii::$app->request->absoluteUrl;                  //結果:http://www.phpxs.com/post/index.php/product?id=100, 包含host infode的整個URL。
    Yii::$app->request->hostInfo;                 //結果:http://www.phpxs.com, 只有host info部分。
    Yii::$app->request->pathInfo;                 //結果:/product, 這個是入口腳本之後,問號之前(查詢字符串)的部分。
    Yii::$app->request->queryString;                  //結果:id=100,問號之後的部分。
    Yii::$app->request->baseUrl;                      //結果:/admin, host info之後, 入口腳本之前的部分。
    Yii::$app->request->scriptUrl;                    //結果:/admin/index.php, 沒有path info和查詢字符串部分。
    Yii::$app->request->serverName;                   //結果:example.com, URL中的host name。
    Yii::$app->request->serverPort;                   //結果:80, 這是web服務中使用的端口。
    Yii::$app->request->userAgent;                    //結果:返回 User-Agent 頭
    Yii::$app->request->contentType;                  //結果:返回 Content-Type 頭的值, Content-Type 是請求體中MIME類型數據。
    Yii::$app->request->acceptableContentTypes;       //結果:返回用戶可接受的內容MIME類型。 返回的類型是按照他們的質量得分來排序的。得分最高的類型將被最先返回。
    Yii::$app->request->acceptableLanguages;          //結果:返回用戶可接受的語言。 返回的語言是按照他們的偏好層次來排序的。第一個參數代表最優先的語言。
    Yii::$app->request->getPreferredLanguage();       //結果:這個方法通過 yiiwebRequest::acceptableLanguages 在你的應用中所支持的語言列表裏進行比較篩選,返回最適合的語言。
     
    //#############################客戶端信息#######################
    Yii::$app->request->userHost;
    Yii::$app->request->userIP;
     
    #############################HTTP頭部#######################
    $headers = Yii::$app->response->headers;
    $headers->add('Pragma', 'no-cache');     // 增加一個 Pragma 頭,已存在的Pragma 頭不會被覆蓋。
    $headers->set('Pragma', 'no-cache');     // 設置一個Pragma 頭. 任何已存在的Pragma 頭都會被丟棄
    $values = $headers->remove('Pragma');        // 刪除Pragma 頭並返回刪除的Pragma 頭的值到數組
     
    //#############################文件下載#######################
    yiiwebResponse::sendFile();             //發送一個已存在的文件到客戶端
    yiiwebResponse::sendContentAsFile();        //發送一個文本字符串作爲文件到客戶端
    yiiwebResponse::sendStreamAsFile();     //發送一個已存在的文件流作爲文件到客戶端
     
    public function actionDownload(){
        return Yii::$app->response->sendFile('path/to/file.txt');
    }
     
    //#############################301跳轉########################
    Yii::$app->response->redirect('http://example.com/new', 301)->send();
     
    //#############################狀態碼########################
    Yii::$app->response->statusCode = 200;
     
    //#############################session使用########################
    $session = Yii::$app->session; 
    if ($session->isActive)          // 檢查session是否開啓
    $session->open();                    // 開啓session
    $session->close();                   // 關閉session
    $session->destroy();             // 銷燬session中所有已註冊的數據
     
    //#########################cookie的使用#############
    $cookies = Yii::$app->request->cookies;
    $language = $cookies->getValue('language', 'en');    // 獲取名爲 "language" cookie 的值,如果不存在,返回默認值"en"
     
    // 另一種方式獲取名爲 "language" cookie 的值
    if (($cookie = $cookies->get('language')) !== null) {
        $language = $cookie->value;
    }
     
    // 可將 $cookies當作數組使用
    if (isset($cookies['language'])) {
        $language = $cookies['language']->value;
    }
     
    // 在要發送的響應中添加一個新的cookie
    $cookies->add(new yiiwebCookie([
        'name' => 'language',
        'value' => 'zh-CN',
    ]));
     
    // 判斷是否存在名爲"language" 的 cookie
    if ($cookies->has('language'))
    if (isset($cookies['language'])) ;
             
    //#####################Yii2.0 對數據庫 查詢的一些簡單的操作 #####################
    class UserModel extends  yiidbActiveRecord{
        public function test(){
            self::find()->all();                                                    //此方法返回所有數據;
            self::findOne($id);                                                     //此方法返回 主鍵 id=1  的一條數據(舉個例子);
            self::find()->where(['name' => '小夥兒'])->one();                         //此方法返回 ['name' => '小夥兒'] 的一條數據;
            self::find()->where(['name' => '小夥兒'])->all();                         //此方法返回 ['name' => '小夥兒'] 的所有數據;
            self::find()->orderBy('id DESC')->all();                                //此方法是排序查詢;
            self::findBySql('SELECT * FROM user')->all();                           //此方法是用 sql  語句查詢 user 表裏面的所有數據;
            self::findBySql('SELECT * FROM user')->one();                           //此方法是用 sql  語句查詢 user 表裏面的一條數據;
            self::find()->andWhere(['sex' => '男', 'age' => '24'])->count('id');     //統計符合條件的總條數;
            self::find()->one();                                                    //此方法返回一條數據;
            self::find()->all();                                                    //此方法返回所有數據;
            self::find()->count();                                                  //此方法返回記錄的數量;
            self::find()->average('age');                                           //此方法返回指定列的平均值;
            self::find()->min('age');                                               //此方法返回指定列的最小值 ;
            self::find()->max('age');                                               //此方法返回指定列的最大值 ;
            self::find()->scalar();                                                 //此方法返回值的第一行第一列的查詢結果;
            self::find()->column();                                                 //此方法返回查詢結果中的第一列的值;
            self::find()->exists();                                                 //此方法返回一個值指示是否包含查詢結果的數據行;
            self::find()->batch(10);                                                //每次取 10 條數據
            self::find()->each(10);                                                 //每次取 10 條數據, 迭代查詢
        }
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章