程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Yii控制器動作參數綁定處理

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

編輯:關於PHP編程

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'];
		else
			throw 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注入的函數

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved