【问题标题】:Cakephp, validate field if not requiredCakephp,如果不需要,请验证字段
【发布时间】:2014-04-06 17:49:44
【问题描述】:

嗨,我遇到了奇怪的问题,我的表单中有这个 input

$this->Form->input('processing_data', array('label' => 'STH', 'required' => 'required'));

这会产生这个 html

<input id="UserProcessingData" type="checkbox" value="1" required="required" name="data[User][processing_data]">

我验证此字段的模型是 User 模型及其代码:

'processing_data' => array(
            'rule' => 'notEmpty',
            'allowEmpty' => false,
            'message' => 'Prosze zaznaczyć'
    ),

但是假设有人从输入中手动删除required="required",然后验证没有被触发,我认为'rule =&gt; 'notEmpty' 会做,但没有任何改变,所以接下来我添加了'allowEmpty' =&gt; false,,但它也没有帮助。 即使需要的字段不存在,也可以做些什么来验证此字段

【问题讨论】:

    标签: php cakephp cakephp-2.0


    【解决方案1】:

    使用这个-

    'processing_data' => array(
                'rule' => array('notEmpty'),
                'required' => true,
                'message' => 'Prosze zaznaczyć'
        ),
    

    【讨论】:

    • 没有帮助我使用 CakePHP 2.4
    • 我使用 CakePHP 2.4。它是验证表单输入的方法。看,我解释...规则 notEmpty 确定您的输入不为空或不为空。这并不意味着必须填写该输入。但是当我们添加 required => true 时,用户必须填写该表单。因此,万一有人从输入中手动删除 required="required",CakePHP 将在保存到数据库之前对其进行检查。
    • 嘿 Fazal 我认为 notEmpty 规则只是检查该字段的值不应为空或 null,如果用户使用 firebug 从表单中删除该字段,那么蛋糕如何检查 allowEmpty 应该是true 这意味着如果用户删除该字段而不是蛋糕抛出错误,则该字段应该在表单中。
    • 好的,我调试了 POST 中的内容,即使有人没有检查我在 POST 中的复选框 wwas 0 也不是空的,所以我结束了正则表达式,现在一切正常
    【解决方案2】:

    在模型中使用 required => true ,如果它是强制性的,你可以 true 你的 allowEmpty 验证。

    'processing_data' => array(
            'rule' => 'notEmpty',
            'required' => true,
            'allowEmpty' => true,
            'message' => 'Prosze zaznaczyć'
    ),
    

    【讨论】:

    • 同上没有帮助
    【解决方案3】:

    试试这个

    'processing_data' => array(
        'rule' => 'notEmpty',
        'required' => true,
        'allowEmpty' => false,
        'message' => 'Prosze zaznaczyć'
    ),
    

    【讨论】:

      猜你喜欢
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 2016-12-18
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 2023-03-31
      • 2018-03-29
      相关资源
      最近更新 更多