Yii控制器動作參數綁定處理
從版本 1.1.4 開始,Yii 提供了對自動動作參數綁定的支援。就是說,控制器動作可以定義命名的參數,參數的值將由 Yii 自動從 $_GET 填充。
為了詳細說明此功能,假設我們需要為 PostController 寫一個 create 動作。此動作需要通過$_GET傳遞兩個參數:
category:一個整數,代表文章(post)要發表在的那個分類的ID。
language:一個字串,代表文章所使用的語言代碼。
從 $_GET 中提取參數時,我們可以不再像下面這樣寫相關的驗證代碼了:
class PostController extends CController{public function actionCreate(){if(isset($_GET['category']))$category=(int)$_GET['category'];elsethrow new CHttpException(404,'invalid request');if(isset($_GET['language']))$language=$_GET['language'];else$language='en';// ......}}
現在使用動作參數功能,我們可以更輕鬆的完成如上面代碼的相關任務:
class PostController extends CController{public function actionCreate($category, $language='en'){$category = (int)$category;echo 'Category:'.$category.'/Language:'.$language;// ......}}
注意我們在動作方法 actionCreate 中添加了兩個參數。這些參數的名字必須和我們想要從 $_GET 中提取的名字一致。當使用者沒有在請求中指定 $language 參數時,這個參數會使用預設值 en 。由於 $category 沒有預設值,如果使用者沒有在 $_GET 中提供 category 參數,將會自動拋出一個 CHttpException (錯誤碼 400) 異常。
從版本1.1.5開始,Yii已經支援數組的動作參數。使用方法如下:
class PostController extends CController{public function actionCreate(array $categories){// Yii will make sure $categories be an array}}
您可能感興趣的文章
- CuteFTP串連ftp伺服器時彈出“遇到無效的參數”錯誤的解決辦法
- linux chmod(檔案或檔案夾許可權設定)命令參數及用法詳解
- thinkphp 的 Action 控制器中的系統常量總結
- JavaScript瀏覽器地址欄特效之無敵風火輪特效
- 基於jQuery控制的左右滾動,自動滾動效果
- 由於其配置資訊(註冊表中的)不完整或已損壞,Windows 無法啟動這個硬體裝置。 (代碼 19)解決辦法
- javascript擷取當前完整的url地址以及參數的方法
- PHP檢查瀏覽器參數防止被SQL注入的函數
http://www.bkjia.com/PHPjc/980453.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/980453.htmlTechArticleYii控制器動作參數綁定處理 從版本 1.1.4 開始,Yii 提供了對自動動作參數綁定的支援。就是說,控制器動作可以定義命名的參數,參數的值...