YurunPHP的Model提供自動獲取數據并驗證的方法。
首先需要在Model中定義`protected $rules`
~~~
protected $rules=array(
'reg'=>array(
array('name'=>'username','type'=>array('require','length'=>array(1,5)),'msg'=>'請填寫正確的用戶名,長度在1-5之間。'),
array('name'=>'password','type'=>'not_empty_str','msg'=>'密碼不能為空'),
array('name'=>'password2','type'=>'not_empty_str','msg'=>'密碼不能為空'),
array('name'=>'card_id'),
array('name'=>'name','type'=>'not_empty_str','msg'=>'真實姓名不能為空'),
array('name'=>'tel','type'=>'phone','msg'=>'請輸入正確的聯系電話'),
array('name'=>'zone_id','type'=>'numeric','filter'=>'intval','msg'=>'請選擇所在地區')
),
'login'=>array(
array('name'=>'username','type'=>'not_empty_str','msg'=>'用戶名不能為空'),
array('name'=>'password','type'=>'not_empty_str','msg'=>'密碼不能為空'),
),
'userInfo'=>array(
array('name'=>'name','type'=>'not_empty_str','msg'=>'用戶名不能為空'),
array('name'=>'tel','type'=>'phone','msg'=>'請輸入正確的聯系電話'),
array('name'=>'email'),
array('name'=>'company'),
),
'changepassword'=>array(
array('name'=>'password','type'=>'not_empty_str','msg'=>'不能為空'),
array('name'=>'Rpassword','type'=>'not_empty_str','msg'=>'不能為空'),
array('name'=>'old_password','type'=>'not_empty_str','msg'=>'不能為空'),
)
);
~~~
上面定義了4組規則,分別是注冊(reg)、登錄(login)、編輯資料(userInfo)、修改密碼(changepassword)。命名可以隨開發者喜好命名。
規則可用字段:
| 名稱 | 描述 | 必填 |
| -- | -- | -- |
| name | 字段名稱 | √ |
| from | 從哪里取數據,默認為Request。可選值:get/post/cookie/server | |
| type | 驗證類型,支持字符串和數組。支持多個驗證。留空則不驗證 | |
| filter | 過濾器,支持字符串和數組。在驗證前會做過濾。 | |
| default | 默認值。在驗證失敗時直接使用這個默認值。 | |
| msg | 驗證失敗時的返回消息 | |
定義好規則后,我們就可以使用了。
格式:
~~~
fromForm(規則名[,是否獲取全部錯誤信息])
~~~
> fromForm方法執行成功返回true,執行失敗返回一個數組。
使用方法:
~~~
$result = $model->fromForm('reg'); // 調用reg規則
$result = $model->fromForm('reg',false); // 調用reg規則,和上面等同
~~~
結果:
~~~
array (size=2)
'name' => string 'username' (length=8)
'msg' => string '請填寫正確的用戶名,長度在1-5之間。' (length=21)
~~~
上面結果是驗證失敗時返回的結果,fromForm第二個參數不傳或者為false時,只返回一個錯誤信息,也就是一維數組。
name對應的是字段名稱,msg對應的是提示信息。
使用方法2:
~~~
$result = $model->fromForm('reg',true);
~~~
結果:
~~~
array (size=5)
'username' =>
array (size=2)
'name' => string 'username' (length=8)
'msg' => string '請填寫正確的用戶名,長度在1-5之間。' (length=21)
'password2' =>
array (size=2)
'name' => string 'password2' (length=9)
'msg' => string '密碼不能為空' (length=18)
'name' =>
array (size=2)
'name' => string 'name' (length=4)
'msg' => string '真實姓名不能為空' (length=24)
'tel' =>
array (size=2)
'name' => string 'tel' (length=3)
'msg' => string '請輸入正確的聯系電話' (length=30)
'zone_id' =>
array (size=2)
'name' => string 'zone_id' (length=7)
'msg' => string '請選擇所在地區' (length=21)
~~~
上面結果是驗證失敗時返回的結果,fromForm第二個參數為true時,返回所有驗證失敗的信息。
同樣,name對應的是字段名稱,msg對應的是提示信息。
- 序言
- 有些話想說
- 基礎入門
- 簡介
- 下載YurunPHP
- 運行環境
- 開發規范
- 目錄結構
- 模塊
- 控制器
- 項目配置
- 入口文件
- 項目目錄結構
- 配置文件
- 框架編譯
- 項目部署
- 控制器
- 創建控制器
- 加載模版顯示頁面
- AJAX返回數據
- 模型
- 創建模型
- 實例化模型
- 數據管理
- 連貫操作
- distinct
- field
- from
- where
- wherePk
- group
- having
- order
- limit
- join
- page
- headTotal/footTotal
- 連貫操作收尾方法
- select
- selectPage
- buildSQL
- selectValue
- selectBy
- getBy
- getByPk
- random
- inc
- dec
- add
- edit
- delete
- 合計函數
- save
- 執行SQL語句
- 創建數據并驗證
- 字段映射
- GET/POST/COOKIE/REQUEST
- Cookie
- Session
- 數據庫操作
- 配置文件
- 常用操作
- 查詢記錄
- 存儲過程
- 數據庫函數
- MSSQL
- 視圖
- 調用視圖
- 給視圖傳值
- 模版引擎
- 輸出
- 使用PHP代碼
- 模版標簽
- if
- switch
- for
- counter
- foreach
- include
- js/css/image
- url
- 模版常量替換
- 自定義控件
- 通用屬性用法
- 數據集綁定
- 下拉框(select)
- 單選框(radio)
- 單選框組(radiogroup)
- 選擇框(checkbox)
- 選擇框組(checkboxgroup)
- 表格(table)
- 文本框(textbox)
- 分頁條(pagebar)
- 數據驗證
- 驗證方法
- between
- betweenEqual
- empty_str
- not_empty_str
- regex
- length
- lengthChar
- mobile
- tel
- phone
- postcode
- url
- ip
- lt/gt/ltEqual/gtEqual
- equal/unequal
- in/notin
- idcard
- 路由
- 路由配置
- 自定義分層
- 緩存
- 文件緩存
- 配置
- PHP數組配置
- 過濾域名
- 日志
- 文件日志
- 事件&插件機制
- 框架事件列表
- 多語言支持
- 定時任務
- API接口開發