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

Verzeichnis suchen
閱讀前篇 簡介 Yii 是什么 從 Yii 1.1 升級(jí) 入門 安裝 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) 請(qǐng)求處理 運(yùn)行概述 啟動(dòng)引導(dǎo)(Bootstrapping) 路由和創(chuàng)建URL 請(qǐng)求(Requests) 響應(yīng)(Responses) Sessions 和 Cookies 錯(cuò)誤處理(Handling Errors) 日志(Logging) 關(guān)鍵概念 組件(Component) 屬性(Property) 事件(Events) 行為(Behaviors) 配置(Configurations) 別名(Aliases) 類自動(dòng)加載(Autoloading) 服務(wù)定位器(Service Locator) 依賴注入容器(Dependency Injection Container) 配合數(shù)據(jù)庫工作 數(shù)據(jù)庫訪問 (Data Access Objects) 查詢生成器(Query Builder) 活動(dòng)記錄(Active Record) 數(shù)據(jù)庫遷移(Migrations) Sphinx Redis MongoDB Elasticsearch 接收用戶數(shù)據(jù) 創(chuàng)建表單(Creating Forms) 輸入驗(yàn)證(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) 最佳安全實(shí)踐(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) 錯(cuò)誤處理(Error Handling) 開發(fā)工具 調(diào)試工具欄和調(diào)試器 使用Gii生成代碼 生成API文檔 測試 概述(Overview) 配置測試環(huán)境(Testing environment setup) 單元測試(Unit Tests) 功能測試(Function Tests) 驗(yàn)收測試(Acceptance Tests) 測試夾具(Fixtures) 高級(jí)專題 高級(jí)應(yīng)用模板 創(chuàng)建自定義應(yīng)用程序結(jié)構(gòu) 控制臺(tái)命令 核心驗(yàn)證器(Core Validators) 國際化 收發(fā)郵件 性能優(yōu)化 共享主機(jī)環(huán)境 模板引擎 集成第三方代碼 小部件 Bootstrap 小部件 Jquery UI 助手類 概述 Array 助手(ArrayHelper) Html 助手(Html) Url 助手(Url)
Figuren

請(qǐng)求

請(qǐng)求

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

請(qǐng)求參數(shù)

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

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

$get = $request->get(); 
// 等價(jià)于: $get = $_GET;

$id = $request->get('id');   
// 等價(jià)于: $id = isset($_GET['id']) ? $_GET['id'] : null;

$id = $request->get('id', 1);   
// 等價(jià)于: $id = isset($_GET['id']) ? $_GET['id'] : 1;

$post = $request->post(); 
// 等價(jià)于: $post = $_POST;

$name = $request->post('name');   
// 等價(jià)于: $name = isset($_POST['name']) ? $_POST['name'] : null;

$name = $request->post('name', '');   
// 等價(jià)于: $name = isset($_POST['name']) ? $_POST['name'] : '';

信息:建議你像上面那樣通過?request?組件來獲取請(qǐng)求參數(shù),而不是 直接訪問?$_GET?和?$_POST。 這使你更容易編寫測試用例,因?yàn)槟憧梢詡卧鞌?shù)據(jù)來創(chuàng)建一個(gè)模擬請(qǐng)求組件。

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

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

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

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

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

請(qǐng)求方法

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

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

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

請(qǐng)求URLs

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

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

  • 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的整個(gè)URL。
  • yii\web\Request::hostInfo:返回?http://example.com, 只有host info部分。
  • yii\web\Request::pathInfo:返回?/product, 這個(gè)是入口腳本之后,問號(hào)之前(查詢字符串)的部分。
  • yii\web\Request::queryString:返回?id=100,問號(hào)之后的部分。
  • 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 是一個(gè) yii\web\HeaderCollection 對(duì)象$headers = Yii::$app->request->headers;

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

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

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

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

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

提示:你也可以使用 yii\filters\ContentNegotiator 過濾器進(jìn)行動(dòng)態(tài)確定哪些內(nèi)容類型和語言應(yīng)該在響應(yīng)中使用。 這個(gè)過濾器實(shí)現(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;
Vorheriger Artikel: N?chster Artikel: