【问题标题】:CakePHP custom validation rule causes error message on multiple fieldsCakePHP 自定义验证规则导致多个字段出现错误消息
【发布时间】:2015-01-30 20:33:05
【问题描述】:

我的模型中有一些自定义验证函数。例如,在某些字段中,我有一个验证规则来检查是否有任何 HTML 是文本。我的问题是,当我在两个字段上使用相同的验证规则时,视图中的错误消息会出现在两个字段上,即使只有一个验证失败。

例如:

    'field1' => array(
        'noTags' => array(
            'rule' => array( 'detectTags' ),
            'message' => 'HTML tags are not allowed.'
        )
    ),
    'field2' => array(
        'noTags' => array(
            'rule' => array( 'detectTags' ),
            'message' => 'HTML tags are not allowed.'
        )
    ),
...

public function detectTags($check) {
    $value = array_values($check);
    $string = $value[0];
    return ($string == strip_tags($string)); 
}

我已经有一个解决方法(见下文)。我用每个字段的唯一函数包装验证规则,一切正常。但这很烦人。我怀疑有更好的方法。这是什么?

    'field1' => array(
        'noTags' => array(
            'rule' => array( 'detectTags1' ),
            'message' => 'HTML tags are not allowed.'
        )
    ),
    'field2' => array(
        'noTags' => array(
            'rule' => array( 'detectTags2' ),
            'message' => 'HTML tags are not allowed.'
        )
    ),
...

public function detectTags1($check) {
    return $this->_detectTags($check);
}
public function detectTags2($check) {
    return $this->_detectTags($check);
}
private function _detectTags($check) {
    $value = array_values($check);
    $string = $value[0];
    return ($string == strip_tags($string)); 
}

【问题讨论】:

  • 似乎无法用最新的稳定版重现此问题。你用的是什么版本的 CakePHP?

标签: php validation cakephp cakephp-2.0


【解决方案1】:

试试这个

    'field1' => array(
        'noTags1' => array(
            'rule' => array( 'detectTags' ),
            'message' => 'HTML tags are not allowed.'
        )
    ),
    'field2' => array(
        'noTags2' => array(
            'rule' => array( 'detectTags' ),
            'message' => 'HTML tags are not allowed.'
        )
    ),

【讨论】:

    猜你喜欢
    • 2011-04-29
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 2017-04-12
    • 2018-04-30
    • 2021-10-09
    相关资源
    最近更新 更多