【问题标题】:Custom filed validation in CakePHPCakePHP 中的自定义字段验证
【发布时间】:2011-01-30 20:12:13
【问题描述】:

我需要帮助如何为下一个案例开发验证规则...

我的 cakephp 网页表单包含几个动态生成的复选框。最终用户必须至少选择其中之一。

这些复选框都不是 db 表中的字段。

你能帮我创建一个验证规则吗?

试图通过在模型中添加类似的东西来做

var $validate = array(
    'topic' => array(
      'rule' => 'myRule',
      'message' => 'Check on at least one checkbox'
    )
)

function myRule() {
  //just give me false to know it works...
  return false;
}

另外,在这种情况下,如何在这些复选框下方放置错误消息?

tnx in adv!

【问题讨论】:

    标签: cakephp validation cakephp-1.3


    【解决方案1】:

    使用 CakePHP 中的自定义验证规则,如果您调用的是函数而不是 RegEx,则它必须是关联数组中的第一个参数,所以它看起来像这样。

    var $validate = array(
        'topic' => array(
          'rule' => array('myRule'),
          'message' => 'Check on at least one checkbox'
        )
    )
    
    function myRule() {
      //just give me false to know it works...
      return false;
    }
    

    此外,如果您想包含函数参数,您可以将它们作为额外参数放入规则数组中。

    var $validate = array(
        'topic' => array(
          'rule' => array('myRule', 10),
          'message' => 'Check on at least one checkbox'
        )
    )
    
    function myRule($id) {
    if (array_shift($id) = 10) {
        return false;
        }
    }
    

    http://book.cakephp.org/view/152/Adding-your-own-Validation-Methods

    【讨论】:

    • 标记是正确的,抱歉。 myRule 的第一个函数参数是表单值。
    • 是的,我在发布我的问题之前也尝试过,所以仍然有同样的问题......它的工作原理就像根本没有定义自定义验证一样。
    • 规则不必在数组中,'rule' => 'myRule' 完全没问题。该数组仅在有其他信息传递给进行验证的方法时使用。
    • 尝试了这两个选项,以及许多其他选项,但仍然相同......我做错了什么?就像我说的,看起来自定义验证根本没有定义。
    猜你喜欢
    • 1970-01-01
    • 2016-09-07
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多