簡體   English   中英

CakePHP驗證消息的位置

[英]CakePHP validation messages position

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

那可能嗎?

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']。 (未試)

另一個解決方案是使用Miles Johnson所介紹的元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM