<?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 條資料, 迭代查詢 } }