1. 程式人生 > >Yii2.0 常用的變量、方法、函數

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

class query host name base done 拋出異常 ren languages mode

<?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 條數據, 叠代查詢
}
}

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