国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

Yii中表單用法實例

2020-03-22 19:03:54
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Yii中表單用法,結合實例形式較為詳細的分析總結了Yii針對表單的各種常用操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Yii中表單用法。分享給大家供大家參考,具體如下:

在 Yii 中處理表單時,通常需要以下步驟:

1. 創建用于表現所要收集數據字段的模型類。
2. 創建一個控制器動作,響應表單提交。
3. 在視圖腳本中創建與控制器動作相關的表單。

一、創建模型

在編寫表單所需的 HTML 代碼之前,我們應該先確定來自最終用戶輸入的數據的類型,以及這些數據應符合什么樣的規則。模型類可用于記錄這些信息。正如模型章節所定義的,模型是保存用戶輸入和驗證這些輸入的中心位置。

取決于使用用戶所輸入數據的方式,我們可以創建兩種類型的模型。如果用戶輸入被收集、使用然后丟棄,我們應該創建一個表單模型;

如果用戶的輸入被收集后要保存到數據庫,我們應使用一個Active Record。兩種類型的模型共享同樣的基類 CModel,它定義了表單所需的通用接口。

1、定義模型類

例如創建為一個表單模型:

html' target='_blank'>class LoginForm extends CFormModelpublic $username;public $password;public $rememberMe=false;}

LoginForm中定義了三個屬性: $username, $password 和$rememberMe。他們用于保存用戶輸入的用戶名和密碼,還有用戶是否想記住他的登錄的選項。由于 $rememberMe 有一個默認的值false,相應的選項在初始化顯示在登錄表單中時將是未勾選狀態。

我們將這些成員變量稱為特性(attributes)而不是屬性(properties),以區別于普通的屬性(properties)。特性(attribute)是一個主要用于存儲來自用戶輸入或數據庫數據的屬性(propertiy)。

2、聲明驗證規則

一旦用戶提交了他的輸入,模型被填充,我們就需要在使用前確保用戶的輸入是有效的。這是通過將用戶的輸入和一系列規則執行驗證實現的。我們在 rules() 方法中指定這些驗證規則,此方法應返回一個規則配置數組。

class LoginForm extends CFormModelpublic $username;public $password;public $rememberMe=false;private $_identity;public function rules()return array(array( username, password , required ), //username 和 password 為必填項array( rememberMe , boolean ), //rememberMe 應該是一個布爾值array( password , authenticate ), //password 應被驗證(authenticated)public function authenticate($attribute,$params)$this- _identity=new UserIdentity($this- username,$this- password);if(!$this- _identity- authenticate())$this- addError( password , 錯誤的用戶名或密碼。 }

rules() 返回的每個規則必須是以下格式:

array( AttributeList , Validator , on = ScenarioList , ...附加選項)

其中:

AttributeList(特性列表)是需要通過此規則驗證的特性列表字符串,每個特性名字由逗號分隔;
Validator(驗證器) 指定要執行驗證的種類;
on 參數是可選的,它指定此規則應被應用到的場景列表;

附加選項 是一個名值對數組,用于初始化相應驗證器的屬性值。

有三種方式可在驗證規則中指定 Validator:

第一, Validator 可以是模型類中一個方法的名字,就像上面示例中的 authenticate 。驗證方法必須是下面的結構:

public function 驗證器名稱($attribute,$params) { ... }

第二,Validator可以是一個驗證器類的名字,當此規則被應用時,一個驗證器類的實例將被創建以執行實際驗證。規則中的附加選項用于初始化實例的屬性值。驗證器類必須繼承自 CValidator。

第三,Validator 可以是一個預定義的驗證器類的別名。在上面的例子中,required 名字是 CRequiredValidator 的別名,它用于確保所驗證的特性值不為空。下面是預定義的驗證器別名的完整列表:

boolean: CBooleanValidator 的別名,確保特性有一個 CBooleanValidator::trueva lue 或 CBooleanValidator::falseva lue 值。
captcha: CCaptchaValidator 的別名,確保特性值等于 CAPTCHA 中顯示的驗證碼。
compare: CCompareva lidator 的別名,確保特性等于另一個特性或常量。
email: CEmailValidator 的別名,確保特性是一個有效的Email地址。
default: CDefaultValueva lidator 的別名,指定特性的默認值。
exist: CExistValidator 的別名,確保特性值可以在指定表的列中可以找到。
file: CFileva lidator 的別名,確保特性含有一個上傳文件的名字。
filter: CFilterValidator 的別名,通過一個過濾器改變此特性。
in: CRangeva lidator 的別名,確保數據在一個預先指定的值的范圍之內。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 客服| 漠河县| 鸡东县| 陈巴尔虎旗| 霍林郭勒市| 渑池县| 民县| 报价| 祁门县| 军事| 虞城县| 报价| 奉节县| 彰化县| 藁城市| 韩城市| 沅江市| 日照市| 武清区| 西昌市| 政和县| 太原市| 建湖县| 隆回县| 苏尼特左旗| 咸丰县| 涿鹿县| 高密市| 阳原县| 平遥县| 红河县| 铜川市| 界首市| 惠水县| 镇雄县| 冀州市| 武宁县| 道真| 当阳市| 溧水县| 邻水|