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'
        )
                 )
     ),
4

1 回答 1

2

看起来 cake 的内置数据验证规则当前无法处理“Y”日期格式。(内置验证规则列表

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

所以最简单的方法是使用自定义验证函数,实现起来非常简单:添加自己的验证方法

于 2012-04-16T08:18:09.920 回答