如何在Yii2的动态模型中添加自定义验证功能?

Vin*_*ngh 6 php yii2 yii2-basic-app yii2-model

我在yii2基本应用程序中使用动态模型。

以下是我的动态模型的代码。

$model = new \yii\base\DynamicModel([
        'role', 'from_rm', 'to_rm', 'user1_subdistrcts'
    ]);
    $model->addRule(['user1_subdistrcts', 'role'], 'required', ['message' => "Please select this field."])
->addRule(['from_rm'], 'checkRm');
Run Code Online (Sandbox Code Playgroud)

在这里,我愿意为用户自定义验证功能'checkRm'表单from_rm字段,我也已经定义了checkRm函数,如下所示:

public function checkRm($from_rm, $params)
{
    $this->addError($from_rm, 'Please Select Regional Manager.');
}
Run Code Online (Sandbox Code Playgroud)

但是当我提交表格时我发现错误Class CheckRm没找到

现在,请帮助如何在动态模型中使用自定义验证。

我也试过了whenwhenClient但条件也没用

Biz*_*ley 0

checkRm如果是类方法,则此方法有效DynamicModel。因此,要么扩展DynamicModel并添加此方法,要么使用闭包,例如:

...->addRule(['from_rm'], function ($attribute, $params) {
    $this->addError($from_rm, 'Please Select Regional Manager.');
});
Run Code Online (Sandbox Code Playgroud)