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

首頁(yè) > 編程 > PHP > 正文

Yii中表單用法實(shí)例詳解

2020-03-22 19:05:55
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
本文實(shí)例講述了Yii中表單用法。分享給大家供大家參考,具體如下:在 Yii 中處理表單時(shí),通常需要以下步驟:1. 創(chuàng)建用于表現(xiàn)所要收集數(shù)據(jù)字段的模型類。
2. 創(chuàng)建一個(gè)控制器動(dòng)作,響應(yīng)表單提交。
3. 在視圖腳本中創(chuàng)建與控制器動(dòng)作相關(guān)的表單。一、創(chuàng)建模型在編寫(xiě)表單所需的 HTML 代碼之前,我們應(yīng)該先確定來(lái)自最終用戶輸入的數(shù)據(jù)的類型,以及這些數(shù)據(jù)應(yīng)符合什么樣的規(guī)則。模型類可用于記錄這些信息。正如模型章節(jié)所定義的,模型是保存用戶輸入和驗(yàn)證這些輸入的中心位置。取決于使用用戶所輸入數(shù)據(jù)的方式,我們可以創(chuàng)建兩種類型的模型。如果用戶輸入被收集、使用然后丟棄,我們應(yīng)該創(chuàng)建一個(gè)表單模型;如果用戶的輸入被收集后要保存到數(shù)據(jù)庫(kù),我們應(yīng)使用一個(gè)Active Record。兩種類型的模型共享同樣的基類 CModel,它定義了表單所需的通用接口。1、定義模型類例如創(chuàng)建為一個(gè)表單模型:html' target='_blank'>class LoginForm extends CFormModelpublic $username;public $password;public $rememberMe=false;LoginForm中定義了三個(gè)屬性: $username, $password 和$rememberMe。他們用于保存用戶輸入的用戶名和密碼,還有用戶是否想記住他的登錄的選項(xiàng)。由于 $rememberMe 有一個(gè)默認(rèn)的值false,相應(yīng)的選項(xiàng)在初始化顯示在登錄表單中時(shí)將是未勾選狀態(tài)。我們將這些成員變量稱為特性(attributes)而不是屬性(properties),以區(qū)別于普通的屬性(properties)。特性(attribute)是一個(gè)主要用于存儲(chǔ)來(lái)自用戶輸入或數(shù)據(jù)庫(kù)數(shù)據(jù)的屬性(propertiy)。2、聲明驗(yàn)證規(guī)則一旦用戶提交了他的輸入,模型被填充,我們就需要在使用前確保用戶的輸入是有效的。這是通過(guò)將用戶的輸入和一系列規(guī)則執(zhí)行驗(yàn)證實(shí)現(xiàn)的。我們?cè)?rules() 方法中指定這些驗(yàn)證規(guī)則,此方法應(yīng)返回一個(gè)規(guī)則配置數(shù)組。class LoginForm extends CFormModelpublic $username;public $password;public $rememberMe=false;private $_identity;public function rules()return array(array('username, password', 'required'), //username 和 password 為必填項(xiàng)array('rememberMe', 'boolean'), //rememberMe 應(yīng)該是一個(gè)布爾值array('password', 'authenticate'), //password 應(yīng)被驗(yàn)證(authenticated)public function authenticate($attribute,$params)$this- _identity=new UserIdentity($this- username,$this- password);if(!$this- _identity- authenticate())$this- addError('password','錯(cuò)誤的用戶名或密碼。');rules() 返回的每個(gè)規(guī)則必須是以下格式:
復(fù)制代碼 代碼如下:array('AttributeList', 'Validator', 'on'= 'ScenarioList', ...附加選項(xiàng))
其中:AttributeList(特性列表)是需要通過(guò)此規(guī)則驗(yàn)證的特性列表字符串,每個(gè)特性名字由逗號(hào)分隔;
Validator(驗(yàn)證器) 指定要執(zhí)行驗(yàn)證的種類;
on 參數(shù)是可選的,它指定此規(guī)則應(yīng)被應(yīng)用到的場(chǎng)景列表;附加選項(xiàng) 是一個(gè)名值對(duì)數(shù)組,用于初始化相應(yīng)驗(yàn)證器的屬性值。有三種方式可在驗(yàn)證規(guī)則中指定 Validator:第一, Validator 可以是模型類中一個(gè)方法的名字,就像上面示例中的 authenticate 。驗(yàn)證方法必須是下面的結(jié)構(gòu):
復(fù)制代碼 代碼如下:public function 驗(yàn)證器名稱($attribute,$params) { ... }
第二,Validator可以是一個(gè)驗(yàn)證器類的名字,當(dāng)此規(guī)則被應(yīng)用時(shí),一個(gè)驗(yàn)證器類的實(shí)例將被創(chuàng)建以執(zhí)行實(shí)際驗(yàn)證。規(guī)則中的附加選項(xiàng)用于初始化實(shí)例的屬性值。驗(yàn)證器類必須繼承自 CValidator。第三,Validator 可以是一個(gè)預(yù)定義的驗(yàn)證器類的別名。在上面的例子中,required 名字是 CRequiredValidator 的別名,它用于確保所驗(yàn)證的特性值不為空。下面是預(yù)定義的驗(yàn)證器別名的完整列表:boolean: CBooleanValidator 的別名,確保特性有一個(gè) CBooleanValidator::trueva lue 或 CBooleanValidator::falseva lue 值。
captcha: CCaptchaValidator 的別名,確保特性值等于 CAPTCHA 中顯示的驗(yàn)證碼。
compare: CCompareva lidator 的別名,確保特性等于另一個(gè)特性或常量。
email: CEmailValidator 的別名,確保特性是一個(gè)有效的Email地址。
default: CDefaultValueva lidator 的別名,指定特性的默認(rèn)值。
exist: CExistValidator 的別名,確保特性值可以在指定表的列中可以找到。
file: CFileva lidator 的別名,確保特性含有一個(gè)上傳文件的名字。
filter: CFilterValidator 的別名,通過(guò)一個(gè)過(guò)濾器改變此特性。
in: CRangeva lidator 的別名,確保數(shù)據(jù)在一個(gè)預(yù)先指定的值的范圍之內(nèi)。
length: CStringValidator 的別名,確保數(shù)據(jù)的長(zhǎng)度在一個(gè)指定的范圍之內(nèi)。
match: CRegularExpressionValidator 的別名,確保數(shù)據(jù)可以匹配一個(gè)正則表達(dá)式
numerical: CNumberValidator 的別名,確保數(shù)據(jù)是一個(gè)有效的數(shù)字。

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 林周县| 阿巴嘎旗| 曲阜市| 甘洛县| 德钦县| 盘锦市| 沅江市| 福安市| 嵊州市| 轮台县| 遂川县| 清水河县| 宜良县| 五台县| 新化县| 桦川县| 营口市| 西贡区| 石城县| 清河县| 连江县| 许昌县| 武平县| 石家庄市| 沈丘县| 柘荣县| 永昌县| 尉氏县| 梨树县| 渑池县| 隆回县| 科技| 崇阳县| 犍为县| 贡山| 永清县| 安国市| 册亨县| 郴州市| 右玉县| 应城市|