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

时间:2017-11-11 07:46:47

标签: validation cakephp cakephp-3.0

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

$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()打印出错误信息,谢谢

1 个答案:

答案 0 :(得分:1)

应使用year()方法手动打印错误,您可以使用FormHelper::control()测试是否存在错误。

话虽这么说,像FormHelper::input()这样的单独控制方法不会检查错误,它们只会渲染控件。如果您想要自动错误检查和显示,那么您需要使用error(CakePHP 3.4之前的control()),它包装了该任务(echo $this->Form->control('cc_expires', [ 'type' => 'year', 'label' => false, 'options' => $year_option ]); 选项btw是{{import x选项的选项1}}方法):

from x import y

另见