inList验证错误消息未显示

时间:2015-10-06 12:04:15

标签: php cakephp-3.0

我在模型中有这个验证代码,问题是这个特定的验证消息没有显示验证正在发生,当我要提交表单时,我想在困难领域下面显示错误信息。我期待着您的帮助,我们将非常感谢您的帮助。

$validator
->add('difficulty',[
'valid'=>[
'rule' =>['inList',[1,2,3,4]],
'message' => __('work difficulty required'),
],
]) ;
return $validator

input.ctp

<tr>
<th>Work difficulty (*)</th>
<td>
<?php echo $this->Form->input('difficulty',
[
'type' => 'select',
'options'=>$difficulty_options,
'div'=>false, 
'label'=>false,
'empty' => 'Please select']
);
?>
</td>
</tr>>
在Controller.php中

$difficulty_options = array(
"1"=>"難しすぎる (too difficult)",
"2" => "少し難しい(a little difficult)",
"3" => "簡単 (easy)",
"4" => "易しすぎる (too easy)"
);                          
$this->set('difficulty_options' , $difficulty_options);

1 个答案:

答案 0 :(得分:0)

现在很清楚为什么你没有显示错误信息。

验证后,如果发生任何错误,默认情况下cakephp会生成错误div。

<div class="error-message">Your error message here</div>

在输入字段中,您已应用'div'=>false。因此,此错误消息div不会生成。现在,您可以在difficulty字段后使用以下代码轻松解决此问题。

echo $this->Form->error('difficulty', null, array('class' => 'error-message'));

只需在<td>

中添加此行即可
<td>
<?php echo $this->Form->input('difficulty',
[
'type' => 'select',
'options'=>$difficulty_options,
'div'=>false, 
'label'=>false,
'empty' => 'Please select']
);
?>
<?php  echo $this->Form->error('difficulty', null, array('class' => 'error-message')); ?>   // new line in here
</td>