亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄 搜尋
閱讀前篇 簡介 Yii 是什么 從 Yii 1.1 升級 入門 安裝 Yii 運(yùn)行應(yīng)用 第一次問候 使用Forms 數(shù)據(jù)庫應(yīng)用 使用 Gii 生成代碼 進(jìn)階 應(yīng)用結(jié)構(gòu) 概述 入口腳本 應(yīng)用(Applications) 應(yīng)用組件(Application Components) 控制器(Controllers) 模型(Models) 視圖(views) 模塊(Modules) 過濾器(Filters) 小部件(Widgets) 前端資源(Assets) 擴(kuò)展(Extensions) 請求處理 運(yùn)行概述 啟動引導(dǎo)(Bootstrapping) 路由和創(chuàng)建URL 請求(Requests) 響應(yīng)(Responses) Sessions 和 Cookies 錯誤處理(Handling Errors) 日志(Logging) 關(guān)鍵概念 組件(Component) 屬性(Property) 事件(Events) 行為(Behaviors) 配置(Configurations) 別名(Aliases) 類自動加載(Autoloading) 服務(wù)定位器(Service Locator) 依賴注入容器(Dependency Injection Container) 配合數(shù)據(jù)庫工作 數(shù)據(jù)庫訪問 (Data Access Objects) 查詢生成器(Query Builder) 活動記錄(Active Record) 數(shù)據(jù)庫遷移(Migrations) Sphinx Redis MongoDB Elasticsearch 接收用戶數(shù)據(jù) 創(chuàng)建表單(Creating Forms) 輸入驗證(Validating Input) 文件上傳(Uploading Files) 收集列表輸入(Collecting Tabular Input) 多模型的復(fù)合表單(Getting Data for Multiple Models) 顯示數(shù)據(jù) 格式化輸出數(shù)據(jù)(Data Formatting) 分頁(Pagination) 排序(Sorting) 數(shù)據(jù)提供器(Data Providers) 數(shù)據(jù)小部件(Data Widgets) 客戶端腳本使用(Working with Client Scripts) 主題(Theming) 安全 認(rèn)證(Authentication) 授權(quán)(Authorization) 處理密碼(Working with Passwords) 客戶端認(rèn)證(Auth Clients) 最佳安全實踐(Best Practices) 緩存 概述 數(shù)據(jù)緩存 片段緩存 頁面緩存 HTTP 緩存 RESTfull Web服務(wù) 快速入門(Quick Start) 資源(Resources) 控制器(Controllers) 路由(Routing) 格式化響應(yīng)(Response Formatting) 授權(quán)認(rèn)證(Authentication) 速率限制(Rate Limiting) 版本(Versioning) 錯誤處理(Error Handling) 開發(fā)工具 調(diào)試工具欄和調(diào)試器 使用Gii生成代碼 生成API文檔 測試 概述(Overview) 配置測試環(huán)境(Testing environment setup) 單元測試(Unit Tests) 功能測試(Function Tests) 驗收測試(Acceptance Tests) 測試夾具(Fixtures) 高級專題 高級應(yīng)用模板 創(chuàng)建自定義應(yīng)用程序結(jié)構(gòu) 控制臺命令 核心驗證器(Core Validators) 國際化 收發(fā)郵件 性能優(yōu)化 共享主機(jī)環(huán)境 模板引擎 集成第三方代碼 小部件 Bootstrap 小部件 Jquery UI 助手類 概述 Array 助手(ArrayHelper) Html 助手(Html) Url 助手(Url)
文字

請求

請求

一個應(yīng)用的請求是用 yii\web\Request 對象來表示的,該對象提供了諸如 請求參數(shù)(譯者注:通常是GET參數(shù)或者POST參數(shù))、HTTP頭、cookies等信息。 默認(rèn)情況下,對于一個給定的請求,你可以通過?request?application component?應(yīng)用組件(yii\web\Request 類的實例) 獲得訪問相應(yīng)的請求對象。在本章節(jié),我們將介紹怎樣在你的應(yīng)用中使用這個組件。

請求參數(shù)

要獲取請求參數(shù),你可以調(diào)用?request?組件的 yii\web\Request::get() 方法和 yii\web\Request::post() 方法。 他們分別返回?$_GET?和$_POST?的值。例如,

$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?組件來獲取請求參數(shù),而不是 直接訪問?$_GET?和?$_POST。 這使你更容易編寫測試用例,因為你可以偽造數(shù)據(jù)來創(chuàng)建一個模擬請求組件。

當(dāng)實現(xiàn)?RESTful APIs?接口的時候,你經(jīng)常需要獲取通過PUT, PATCH或者其他的?request methods?請求方法提交上來的參數(shù)。你可以通過調(diào)用 yii\web\Request::getBodyParam() 方法來獲取這些參數(shù)。例如,

$request = Yii::$app->request;

// 返回所有參數(shù)$params = $request->bodyParams;

// 返回參數(shù) "id"$param = $request->getBodyParam('id');

信息:不同于?GET?參數(shù),POST,PUT,PATCH?等等這些提交上來的參數(shù)是在請求體中被發(fā)送的。 當(dāng)你通過上面介紹的方法訪問這些參數(shù)的時候,request?組件會解析這些參數(shù)。 你可以通過配置 yii\web\Request::parsers 屬性來自定義怎樣解析這些參數(shù)。

請求方法

你可以通過?Yii::$app->request->method?表達(dá)式來獲取當(dāng)前請求使用的HTTP方法。 這里還提供了一整套布爾屬性用于檢測當(dāng)前請求是某種類型。 例如,

$request = Yii::$app->request;

if ($request->isAjax) {  }
if ($request->isGet)  {  }
if ($request->isPost) {  }
if ($request->isPut)  {  }

請求URLs

request?組件提供了許多方式來檢測當(dāng)前請求的URL。

假設(shè)被請求的URL是?http://example.com/admin/index.php/product?id=100, 你可以像下面描述的那樣獲取URL的各個部分:

  • yii\web\Request::url:返回?/admin/index.php/product?id=100, 此URL不包括host info部分。
  • yii\web\Request::absoluteUrl:返回?http://example.com/admin/index.php/product?id=100, 包含host infode的整個URL。
  • yii\web\Request::hostInfo:返回?http://example.com, 只有host info部分。
  • yii\web\Request::pathInfo:返回?/product, 這個是入口腳本之后,問號之前(查詢字符串)的部分。
  • yii\web\Request::queryString:返回?id=100,問號之后的部分。
  • yii\web\Request::baseUrl:返回?/admin, host info之后, 入口腳本之前的部分。
  • yii\web\Request::scriptUrl:返回?/admin/index.php, 沒有path info和查詢字符串部分。
  • yii\web\Request::serverName:返回?example.com, URL中的host name。
  • yii\web\Request::serverPort:返回 80, 這是web服務(wù)中使用的端口。

HTTP頭

你可以通過 yii\web\Request::headers 屬性返回的 yii\web\HeaderCollection 獲取HTTP頭信息。 例如,

// $headers 是一個 yii\web\HeaderCollection 對象$headers = Yii::$app->request->headers;

// 返回 Accept header 值$accept = $headers->get('Accept');

if ($headers->has('User-Agent')) {  }

請求組件也提供了支持快速訪問常用頭的方法,包括:

  • yii\web\Request::userAgent:返回?User-Agent?頭。
  • yii\web\Request::contentType:返回?Content-Type?頭的值,?Content-Type?是請求體中MIME類型數(shù)據(jù)。
  • yii\web\Request::acceptableContentTypes:返回用戶可接受的內(nèi)容MIME類型。 返回的類型是按照他們的質(zhì)量得分來排序的。得分最高的類型將被最先返回。
  • yii\web\Request::acceptableLanguages:返回用戶可接受的語言。 返回的語言是按照他們的偏好層次來排序的。第一個參數(shù)代表最優(yōu)先的語言。

假如你的應(yīng)用支持多語言,并且你想在終端用戶最喜歡的語言中顯示頁面,那么你可以使用語言協(xié)商方法 yii\web\Request::getPreferredLanguage()。 這個方法通過 yii\web\Request::acceptableLanguages 在你的應(yīng)用中所支持的語言列表里進(jìn)行比較篩選,返回最適合的語言。

提示:你也可以使用 yii\filters\ContentNegotiator 過濾器進(jìn)行動態(tài)確定哪些內(nèi)容類型和語言應(yīng)該在響應(yīng)中使用。 這個過濾器實現(xiàn)了上面介紹的內(nèi)容協(xié)商的屬性和方法。

客戶端信息

你可以通過 yii\web\Request::userHost 和 yii\web\Request::userIP 分別獲取host name和客戶機(jī)的IP地址, 例如,

$userHost?=?Yii::$app->request->userHost;
$userIP?=?Yii::$app->request->userIP;
上一篇: 下一篇: