在给定模型之间共享自定义验证方法

Share custom validation method between given models

我想在多个模型之间共享验证函数。 喜欢控制器中的组件。

我认为扩展 AppModel 不是一个选项,因为该功能不适用于我的所有模型,只有其中的 3 个。

如果可能的话,我想把它干掉。

您是否尝试创建一个函数来验证 appModel 并在模型之间调用或动态添加? adding-your-own-validation-methods

或扩展验证 class core-validation-rules

要在 CakePHP 中的模型之间共享方法,请使用 Behaviors(相当于控制器组件的模型)。

您可以像这样定义您的自定义验证规则:-

// app/Model/Behavior/ValidateBehavior.php
class ValidateBehavior extends ModelBehavior {
    public function customValidationRule($Model, $data) {
        // some validation code
    }
}

// example model
class Example extends AppModel {
    public $actsAs = array('Validate');

    public $validate = array(
        'field' => array(
            'custom' => array(
                'rule' => array('customValidationRule')
            )
        ),
    );
}