通常,CakePHP的验证消息来自以下模型:
class User extends AppModel {
public $name = 'User';
public $validate = array(
'username' => array(
'required' => array(
'rule' => array('notEmpty'),
'message' => 'A username is required'
),
'regexp' => array(
'rule' => '/^[a-z0-9]{3,10}$/i',
'message' => 'Only letters and integers, min 3, max. 10 characters'
)
)
)
}
打印在输入下方,我的意思是消息:'message' => 'A username is required'
所以看起来像:
|INPUT|
[Message]
如何更改,以便将消息添加到数组中:
$errors[] = 'Message';
然后,我想使用foreach
在一个地方打印它们。
这可能吗?
答案 0 :(得分:1)
CakePHP具有$ this-> validationErrors中视图可用的所有验证错误。所以我这样循环通过它们:
<?php if ( !empty($this->validationErrors['Model']) ) { ?>
<div id="errorlist">
<h3><a href="#">You have errors in your submission. <?php echo $warnimage; ?></a></h3>
<div>
<ul>
<?php foreach( $this->validationErrors['Model'] as $val ){ ?>
<li><?php echo $val; ?></li>
<?php } ?>
</ul>
</div>
</div>
<?php } ?>
修改
放置此代码的位置? 将代码放在您希望显示的视图中。
如何禁止在输入下显示这些错误? 我不禁用该显示,但假设您希望您可以取消设置$ this-&gt; validationErrors ['Model']。 (另)
另一种解决方案是使用此article by Miles Johnson中显示的元素。