我有一個問題,我想告訴你。 我已經在課堂帖子的appmodel中設置了自定義驗證規則。蛋糕的PHP分隔符不能是字母數字或反斜槓與自定義驗證規則
'DELIVERYAREA' => array(
'rule-1' => array(
'rule' => array('between', 5, 5),
'message' => 'Bitte eine fünfstellige Postleitzahl eingeben'
),
'rule-2' => array(
'rule' => 'numeric',
'message' => 'Bitte nur Zahlen eingeben'
),
'rule-3' => array(
'rule' => 'ZipExists',
'message' => 'Postleitzahl existiert nicht!'
)
)
函數ZipExists也在appmodel中編碼,但在類郵政編碼中。
public function ZipExists($zipcode){
$valid = $this->find('count', array('conditions'=> array('Zipcode.zipcode' =>$zipcode)));
if ($valid >= 1){
return true;
}
else{
return false;
}
}
debug($ valid)引發正確的數字:1如果函數找到有效的郵政編碼則爲0,否則爲0。這就是說這個函數被正確調用。 但蛋糕做了兩件事。 首先它會拋出一個錯誤:分隔符不能是字母數字或反斜槓。由於嘗試array_push($ zipcode);在該功能沒有工作,我沒有一個線索。
其次,對於Deliveryarea視圖中的錯誤消息始終顯示,無論函數是真是假,都無關緊要。
在此先感謝。
前兩個驗證規則可以用'postal'驗證來代替,它也支持德國郵政編碼驗證; http://book.cakephp.org/2.0/en/models/data-validation.html#Validation::post但是,我懷疑錯誤信息可能是由另一個驗證規則引起的,CakePhp將其解釋爲正則表達式。您是否嘗試禁用所有其他驗證規則以縮小問題範圍? – thaJeztah
禁用所有其他變化無效。我得到的錯誤蛋糕couldn't找到zipexists驗證處理建設中的郵政功能你提到後再:「DELIVERYAREA」 =>陣列( 「規則-1」 =>陣列( \t \t \t \t「規則'=>數組(' 郵政」,NULL, '去'), \t \t \t \t '消息'=> 'BITTE EINEgültigePostleitzahl eingeben。', \t \t \t \t '最後'=>真 \t \t \t ), \t \t \t'rule -2' =>數組( \t \t \t \t '規則'=>數組( 'ZipExists'), \t \t \t \t '消息'=>「Postleitzahl existiert nicht!' ) ) – Karl
在閱讀和調試了很多之後,我強烈推測Cake想要在後期課程中使用自定義函數「ZipExists」 - 它被調用的類。但是我需要在類Zipcode中存在時調用該函數。但目前這本書和網絡在這個話題上沒有什麼可提供的。也許我只有在找到信息時運氣不好?! – Karl