0

我想在多个模型之间共享验证功能。 就像控制器中的组件一样。

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

如果可能的话,我想做 DRY。

4

2 回答 2

0

要在 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')
            )
        ),
    );
}
于 2015-11-26T11:38:34.943 回答
0

您是否尝试创建一个函数来验证 appModel 并在模型之间调用或动态添加?添加您自己的验证方法

或扩展 de 验证类core-validation-rules

于 2015-11-23T14:45:12.480 回答