あなたに解決したい問題があります。クラス投稿の appmodel 内にカスタム検証ルールを設定しました。
'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 でコーディングされていますが、クラス zipcode でコーディングされています。
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 です。つまり、関数が適切に呼び出されたことを意味します。しかし、Cake が行うことは 2 つです。最初にエラーがスローされます: 区切り文字は英数字またはバックスラッシュであってはなりません。array_push($zipcode); で試してから 関数では機能しませんでした。私にはそれについての手がかりがありません。
次に、Deliveryarea のビューにエラー メッセージが常に表示されます。関数が true をスローしたか false をスローしたかは問題ではありません。
前もって感謝します。