【发布时间】: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