【问题标题】:validation rule not working验证规则不起作用
【发布时间】:2012-03-23 17:23:38
【问题描述】:

请在我的 cakephp 应用程序中查看模型单元的这个验证数组:

public $validate=array(
    'type'=>array(
        'rule'=>'notEmpty',
        'message'=>'You must choose what type of property this is.'
    ),
    'unitnum'=>array(
        'rule'=>array('custom', '/^[a-z0-9 -\'.\/&]*$/i'),
        'message'=>'Must be the name or number of your unit.'
    ),
    'unit_website'=>array(
        'rule'=>'url',
        'message'=>'You must enter a valid website address.'
    ),
    'specials'=>array(
        'rule'=>'url',
        'message'=>'You must enter a valid website address.'
    ),
    'rates'=>array(
        'rule'=>'url',
        'message'=>'You must enter a valid website address.'
    ),
    'book'=>array(
        'rule'=>'url',
        'message'=>'You must enter a valid website address.'
    ),
    'contact'=>array(
        'rule'=>'url',
        'message'=>'You must enter a valid website address.'
    )
);

除了“特价”的规则之外,每条规则都有效。我想我可能在验证数组、表单或数据库字段中拼错了它,但它拼写正确。
所以然后我尝试在数组中移动它。那没有用。我尝试删除它并手动重写它。不行。

我想,也许文件 /tmp/cache/models/cake_model_defaults_units 是罪魁祸首。我删了,还是不行。

然后我验证了上传的 Unit.php 模型定义副本是最新的版本。是的,是的。

更奇怪的是,我尝试将“foo”和“bar”等新字段添加到我的数据库中,然后为它们提供验证规则(如“url”或“numeric”)。每次,无论我在表单字段中输入什么,它们的验证都不会失败,并且蛋糕会更新我的数据库。

我错过了什么?

【问题讨论】:

  • 您是否尝试过重命名该字段?说“specials_website”
  • 也许你可以用debug()验证beforeValidate()方法中的所有数据是否相同。
  • @pollirrata,尝试过没有成功。
  • 在你的模型中,重写 beforeValidate 方法,只对提交的检查数据进行调试,如下所示:pastebin.com/VcDF5n7y
  • 因为它是在扩展类中定义的,你只需覆盖。现在,只需提交您的表单,您就会看到调试。

标签: validation cakephp model


【解决方案1】:

在@Paulo Rodrigues 的帮助下,问题是我的服务器上有两个模型副本(哎呀!)。将它们都删除并安装了正确模型的新副本。

【讨论】:

    猜你喜欢
    • 2013-12-01
    • 2018-03-12
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    • 2020-03-01
    • 2018-11-09
    • 1970-01-01
    相关资源
    最近更新 更多