如何验证多维数组中的值?

时间:2012-04-16 07:17:01

标签: cakephp cakephp-2.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'
        )
                 )
     ),

1 个答案:

答案 0 :(得分:2)

看起来像cake的内置数据验证规则当前处理的是“Y”dateFormat。 (list of built-in validation rules

即使它确实如此,也没有简单的方法在类属性中指定动态值,因此您无法在Model $ validate声明中使用date(“Y”),您将使用的是常量在你的应用程序的其他地方指定...底线:不优雅且难以维护。

最简单的方法是使用自定义验证函数,这些函数非常易于实现:Adding your own Validation Methods