0

Cake 2.X のカスタム検証ルールで問題が発生しました

入力した郵便番号が有効かどうかを確認したいので、郵便番号クラスの関数がクラス投稿から呼び出されます。

しかし、検証は常に false を返します。

クラス投稿のAppmodel(ルール3です):

'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(
            'exists' => array(
                'rule' => 'ZipExists',
                'message' => 'Postleitzahl existiert nicht!'
            )
        )
    ),

クラス zipcode の Appmodel:

class Zipcode extends AppModel {
  var $name = 'Zipcode';

  var $validate = array(
    'zipcode' => array(
       'length' => array(
              'rule' => array('maxLength', 5),
              'message' => 'Bitte einen Text eingeben'
          ),
         'exists' => array(
          'rule' => array('ZipExists'),
          'message' => 'Postleitzahl existiert nicht!'

       )
    )         
  );

  function ZipExists($zipcode){

    $valid = $this->find('count', array('conditions'=> array('Zipcode.zipcode' =>$zipcode)));
    if ($valid >= 1){
      return true;
    }
    else{
      return false;
    }
  }

私はそれがばかげて簡単なことだと思いますか?前もって感謝します

4

4 に答える 4

0

私はこう思います:

'Zipcode.zipcode' =>$zipcode

...これである必要があります:

'Zipcode.zipcode' =>$zipcode['zipcode']

于 2013-04-18T06:07:43.903 に答える
0

モデルの検証のみにこれを試してください。

  function ZipExists(){

    $valid = $this->find('count', array('conditions'=> array('Zipcode.zipcode' =>$this->data['Zipcode']['zipcode'])));
    if ($valid >= 1){
      return true;
    }
    else{
      return false;
    }
于 2013-04-18T08:09:38.697 に答える