CakePHP验证消息的位置

时间:2011-11-03 10:45:13

标签: validation cakephp messages

通常,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在一个地方打印它们。

这可能吗?

1 个答案:

答案 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中显示的元素。