在cakephp中,有多達26條驗證規則可以用,詳細的見這裡:
但如何擴充套件自定義呢?比如乙個例子中,只對管理員使用者要校驗輸入使用者名稱,普通使用者不用
(乙個很極端的例子),可以這樣做:
var $name = 'user';
var $validate = array(
'name' => array('notempty' =>
array('rule' => array('notempty'),
'message' => 'please enter first name',
......
.......
'username' => array('custom' =>
array('rule' => array('validatedependentfields'),
'message' => 'please enter height',
這裡對username使用自定義的方法,定義乙個方法validatedependentfields去校驗
方法為:
function validatedependentfields($field)
else
break;
case array_key_exists('class_of',$field):
if( $this->data['user']['user_type_id']==1 and (!isset($this->data['user']['class_of']) or empty($this->data['user']['class_of'])) )
else
break;
}
return $passed;
}
這裡假如user_type_id=1為管理員,則返回true,指示使用校驗規則;否則就不校驗,返回false
C 中自定義擴充套件方法
在c 中,我們在不寫子類的情況下,可以為類增加擴充套件方法,前提的被擴充套件的類不能使靜態類。步驟如下 定義乙個靜態 類以包含擴充套件方法。該類必須對客戶端 可見。有關可訪問性規則的更多資訊,請參見 訪問修飾符 c 程式設計指南 將該擴充套件方法實現為靜態方法,並使其至少具有與包含類相同的可見性。該...
自定義擴充套件點
外掛程式開發久了,難免遇到需要自定義擴充套件點的需求,那麼如何自定義擴充套件點呢?以編寫乙個快捷選單項為例,說明如下 假設終端使用者可通過如下配置來擴充套件快捷選單項 com.kdevn.test.mypopupmenus label mynewaction class com.kdevn.test...
DNN中自定義密碼驗證
自定義了乙個登入頁面,因此不像dnn自帶的accountlogin模組那樣能夠自動呼叫相應的方法。這裡必須自己寫sql查詢語句。在dnn資料庫中與使用者資訊相關的表有三張,分別是users,aspnet user和aspnet membership。我們這裡只用到後兩張表,通過連線查詢判斷使用者名稱...