CakePHP - 在哪里放置可重用的自定义验证规则?

时间:2013-06-23 19:59:27

标签: validation cakephp cakephp-2.0 cakephp-2.3

我想添加一个自定义验证规则,可以在必要时在整个应用程序中重复使用。最好放的地方在哪里?

我知道我可以将它们放在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);
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用行为执行此操作。 http://book.cakephp.org/2.0/en/models/behaviors.html您可以使用安装回调来附加验证规则或创建自己的自定义函数。然后,您可以根据需要将行为附加到模型。