2011-11-03 104 views
0

正常情况下,像模型CakePHP的验证消息: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

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-> validationErrors ['Model']。 (未经测试)

另一种解决方案是使用此article by Miles Johnson中显示的元素。

+0

真的吗?我应该在哪里放置该代码?另外,如何禁止在输入下显示这些错误?我想我必须创建新的视图,对吧? – Cyclone