我想知道一般来说验证字段的“最佳”方法是什么。在我的应用程序中,几个表具有始终使用日期选择器窗口小部件输入的日期值。我不想重复验证代码,所以我想做一些事情,比如在AppModel中填充$ validate数组。但它会在具体的模型类中被覆盖。到目前为止我发现的最好的是蛋糕书中的“动态更改验证规则”段落,并以某种方式将该逻辑应用于AppModel,但它看起来有点hacky和un-caky。有人有提示吗? (如果您有疑问,请询问。) 感谢
答案 0 :(得分:0)
只需将它们命名为不同的 - 可以这么说:
public function validateDateTime() {}
等。这样,您的自定义规则不会编写核心规则,反之亦然。
答案 1 :(得分:0)
我有一些验证规则,我想放入3个模型,不重复相同的代码,这里我做了
在AppModel.php中,使用应该在多个模型中的那些规则定义一些var。
public $validationRules = arra(
// rules here
);
并在AppModel的构造函数
中为必要的模型添加它们public function __construct($id = false, $table = null, $ds = null) {
parent::__construct($id, $table, $ds);
/**
* add validation
*/
if (in_array($this->alias, array('MyModel1', 'MyModel2', 'MyModel3')) ) {
$this->validate = array_merge($this->validate, $this->validationRules);
}
}
如果有一些自定义验证函数,那么也可以将它们移动到AppModel.php。