2017-11-11 212 views
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

手动打印错误应该用FormHelper::error()方法来完成,你可以测试是否存在使用FormHelper::isFieldError()错误。

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

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

参见