cakephp中擴充套件自定義驗證規則

2021-08-31 20:27:13 字數 993 閱讀 1655

在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。我們這裡只用到後兩張表,通過連線查詢判斷使用者名稱...