2012-04-16 44 views
0
$year = $this->Form->input('exp_year', array(
           'type' => 'date', 
           'maxYear' => date('Y', strtotime('+ 7 years')), 
           'minYear' => date('Y'), 
           'dateFormat' => 'Y', 
           'empty' => '----', 
           'label' => false 

            ) 
    )); 

所以我試圖讓期滿一年,這是發佈爲:如何驗證多維數組中的值?

  'exp_year' => array(
        'year' => '2016' 
       ), 

我試過了,並沒有看到文檔中的任何這樣的情況。

'exp_year' => array('year' => array(
       'required' => array(
        'rule' => array('numeric'), 
        'message' => 'Must select an expiration year' 
     ) 
      ) 
    ), 

    'exp_year' => array(array(
       'required' => array(
        'rule' => array('numeric'), 
        'message' => 'Must select an expiration year' 
     ) 
       ) 
    ), 

回答

2

它看起來並不像蛋糕的內置數據驗證規則目前處理「Y」日期格式。 (list of built-in validation rules

即使它有,也沒有簡單的方法來指定類屬性中的動態值,所以你不能在Model $ validate聲明中使用date(「Y」),你會有使用你的應用程序中其他地方指定的常量......底線:不雅且難以維護。

所以最簡單的方法是使用自定義驗證功能,這是非常簡單的實現:Adding your own Validation Methods