gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:46:36 24 4
gpt4 key购买 nike

我在我的 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');

我愿意在 from_rm 字段中使用自定义验证函数“checkRm”,我还定义了这样的 checkRm 函数:

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

但是当我提交表单时出现错误 Class checkRm does not found

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

我也尝试过 whenwhenClient 条件,但它们也不起作用

最佳答案

试试这个:

$model = new \yii\base\DynamicModel([
'role', 'from_rm', 'to_rm', 'user1_subdistrcts'
]);
$model->addRule('from_rm', function ($attribute, $params) use ($model) {
$model->addError($attribute, 'Please Select Regional Manager.');
});

编辑:

是的,它有效。但是如果你想用空值测试 from_rm,你需要将 skipOnEmpty 设置为 false。示例:

    $model = new \yii\base\DynamicModel([
'role', 'from_rm', 'to_rm', 'user1_subdistrcts'
]);
$model->addRule('from_rm', function ($attribute, $params) use ($model) {
$model->addError($attribute, 'Please Select Regional Manager.');
}, [
'skipOnEmpty' => false,
]);

$model->validate();
var_dump($model->getErrors());

关于php - 如何在 Yii2 的动态模型中添加自定义验证功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40192773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com