2011-11-03 88 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