Yii控制器動作參數綁定處理_PHP教程

來源:互聯網
上載者:User

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 提供了對自動動作參數綁定的支援。就是說,控制器動作可以定義命名的參數,參數的值...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.