验证错误消息不会在表格年份显示

validation error message will not show at form year

我有这样的验证规则,有生成错误信息

$validator->add('cc_expires',[
                'checkExpiryDate'=>[
                'rule'=>'checkExpiryDate',
                'provider'=>'table',
                'message'=>__('BS_INVALID_CC_EXPIRY_DATE')]]);

但是错误消息不会在这个 $this->Form->year() 控件上生成

echo $this->Form->year('cc_expires', [ 'options' =>  $year_option,'error' =>true]);

我要补充

 <?php  print_r($order->errors() ['cc_expires'] ['checkExpiryDate'] );?> 

打印出错误信息,这很难看,

有没有控件$this->Form->year()打印错误信息,谢谢

手动打印错误应该使用FormHelper::error()方法,可以使用FormHelper::isFieldError().

测试是否有错误

话虽这么说,像 year() 这样的个别控制方法不会检查错误,它们只会呈现控件。如果您想要自动错误检查和显示,那么您需要使用 FormHelper::control()(CakePHP 3.4 之前的 FormHelper::input()),它包装该任务(error 选项 btw 是 control()方法):

echo $this->Form->control('cc_expires', [
    'type' => 'year',
    'label' => false,
    'options' => $year_option
]);

另见