我想添加一个自定义验证规则,可以在必要时在整个应用程序中重复使用。最好放的地方在哪里?
我知道我可以将它们放在AppModel中,但是它很混乱并且使用偶尔用于验证的方法污染/膨胀AppModel,我发现我需要在它们前面添加validateUsername
,{{1}等等,以便从AppModel中的其他方法清楚地组织它们。我觉得在OOP结构中有更好的方法。
有没有办法将自定义规则指定为validateCustom
类的静态方法?例如?
e.g。
应用/ LIB / Validate.php
Lib
然后在需要时仅在模型中使用规则:
应用/型号/ MyModel.php
class Validate {
public function username($value) {
$value = array_shift($value);
return preg_match('/^[A-Z0-9_-]+$/i', $value);
}
}
答案 0 :(得分:0)
您可以使用行为执行此操作。 http://book.cakephp.org/2.0/en/models/behaviors.html您可以使用安装回调来附加验证规则或创建自己的自定义函数。然后,您可以根据需要将行为附加到模型。