2009-10-26 110 views
4

我正在CakePHP項目上工作,並設置了我的數據驗證。我遇到的問題是我一直在從CakePHP的核心/模型中獲取錯誤。cakePHP驗證

錯誤是: 通知(8):未定義偏移:0 [CORE /蛋糕/庫/模型/ model.php,線2435]

     if (is_array($validator['rule'])) { 
         $rule = $validator['rule'][0]; 

我的驗證規則是這樣的:

 
    var $validate = array(
    'name' => array(
     'rule' => array('maxLength' => 80), 
     'required' => true, 
     'message' => 'Please enter your name' 
    ), 
    'address1' => array(
     'rule' => array('maxLength' => 80), 
     'required' => true, 
     'message' => 'You forgot your address' 
    ), 
    'address2' => array(
     'rule' => array('maxLength' => 80), 
     'message' => 'Your address can\'t be that long?' 
    ), 
    'city' => array(
     'rule' => array('maxLength' => 80), 
     'required' => true, 
     'message' => 'Your city can\'t be that long?' 
    ), 
    'zip' => array(
     'rule' => array('postal', null, 'us'), 
     'required' => true, 
     'message' => 'Your zip code is not in the corect format.' 
    ), 
    'phone' => array(
     'rule' => array('phone', null, 'us'), 
     'required' => true, 
     'message' => 'Your phone number is not in the corect format.' 
    ), 
    'email' => array(
     'rule' => 'email', 
     'required' => true, 
     'message' => 'Please enter a valid email address.' 
    ), 
    'seats' => array(
     'rule' => 'numeric', 
     'required' => true, 
     'message' => 'You forgot to let us know how many seats you need. If you will not be attending please enter a zero (0)' 
    ), 
    'seat_with' => array( 
     'rule' => array('maxLength' => 80), 
     'message' => 'Please keep this field below 80 charcters.' 
    ), 
    'cc_name' => array(
     'rule' => array('maxLength' => 80), 
     'required' => true, 
     'message' => 'Did you forget something?' 
    ), 
    'cc_number' => array(
     'rule' => array('cc', 'all', false, null), 
     'required' => true, 
     'message' => 'Your credit card number is not in the correct format.' 
    ), 
    'cc_expiration' => array(
     'rule' => array('date', 'my'), 
     'required' => true, 
     'message' => 'The correct answer will be in the following format MM/YYYY' 
    ), 
    'cc_cvv' => array(
     'rule' => 'numeric', 
     'required' => true, 
     'message' => 'Numbers only please.' 
    ) 
    ); 

任何幫助非常感謝。

回答

9

你的問題是在規則語法:

array('maxLength' => 80) 

就像你的其他規則,這是,,不=>array('maxLength', 80)


順便說一句,我的城市可以是長:http://en.wikipedia.org/wiki/Krung Thep Mahanakhon Amon Rattanakosin Mahinthara... ;-)

+0

正是我需要的。多謝錯誤謝謝。我也會增加城市名稱的大小。 =) – JoshOiknine 2009-10-26 17:16:12

+0

當您處理它時,您可以在「zip」和「phone」的消息中更正「corect」的拼寫以「更正」。 :) – Alan 2014-05-26 14:46:36